mirror of
https://github.com/linuxserver/docker-baseimage-rdesktop.git
synced 2026-02-20 08:39:58 +08:00
Compare commits
310 Commits
bionic-76b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e34b41d61f | ||
|
|
591e281e59 | ||
|
|
42c4de1e50 | ||
|
|
db7794f939 | ||
|
|
e679de35d7 | ||
|
|
0104d493a0 | ||
|
|
3e7eb69f1b | ||
|
|
d4d3e6babf | ||
|
|
1fdb6a33e9 | ||
|
|
3c488a979d | ||
|
|
1c880a4e1f | ||
|
|
2b9a062e46 | ||
|
|
9f9097fe54 | ||
|
|
dcdf40751d | ||
|
|
83b738c6cf | ||
|
|
8a0d2c74fc | ||
|
|
cb8b865682 | ||
|
|
cea5a4afac | ||
|
|
19cd1fa92a | ||
|
|
b9019258d6 | ||
|
|
6ea6e4e585 | ||
|
|
326641e483 | ||
|
|
60c1da2445 | ||
|
|
52479a942d | ||
|
|
b3a3a107c3 | ||
|
|
20e829ad9b | ||
|
|
b65c0802d2 | ||
|
|
382917fac6 | ||
|
|
c5e879d08b | ||
|
|
c3864bdd1e | ||
|
|
abaa9ca674 | ||
|
|
94927f7ed5 | ||
|
|
72b4c250fc | ||
|
|
7fa9b81560 | ||
|
|
b319411d24 | ||
|
|
98409e2bd0 | ||
|
|
3212808cbc | ||
|
|
6e64d336bf | ||
|
|
3c5375d764 | ||
|
|
34e33b5029 | ||
|
|
19e900fa4c | ||
|
|
edf079d205 | ||
|
|
3f58348e3e | ||
|
|
a387e1f9f8 | ||
|
|
685278f3dc | ||
|
|
7ef17373dc | ||
|
|
995a11c11c | ||
|
|
bf566b7af3 | ||
|
|
0edf3448ee | ||
|
|
b6ecd1f835 | ||
|
|
67a955faba | ||
|
|
c692d1dfe8 | ||
|
|
049abd7947 | ||
|
|
8210b66203 | ||
|
|
d7f7b10a2b | ||
|
|
fe804bbe19 | ||
|
|
b9ece16c1f | ||
|
|
c5fcebc6cb | ||
|
|
7a58060c6e | ||
|
|
bb53fda712 | ||
|
|
13d9125f78 | ||
|
|
108ac66933 | ||
|
|
6a2b148d48 | ||
|
|
c138c56967 | ||
|
|
b59b0e9619 | ||
|
|
dfcb7610a1 | ||
|
|
fb8990dc52 | ||
|
|
03e894ee83 | ||
|
|
84820b7283 | ||
|
|
c037f6aa46 | ||
|
|
8a65861876 | ||
|
|
66839b9f20 | ||
|
|
8ab1953f91 | ||
|
|
e482aedeb1 | ||
|
|
be4d236845 | ||
|
|
bc2005748b | ||
|
|
1e3750616b | ||
|
|
8ef842b229 | ||
|
|
4eb1aba9cc | ||
|
|
e090299948 | ||
|
|
2640761351 | ||
|
|
eda5be2b34 | ||
|
|
818276798b | ||
|
|
6fffcdab9a | ||
|
|
a31227c5b8 | ||
|
|
0fadc70732 | ||
|
|
f27cb7cf79 | ||
|
|
fe37f47e23 | ||
|
|
361c8c4388 | ||
|
|
8fdb7ab33b | ||
|
|
d99d11adfa | ||
|
|
8229bb52c2 | ||
|
|
e9299930cd | ||
|
|
af3af6916f | ||
|
|
665e784e28 | ||
|
|
f9b2ff3c52 | ||
|
|
9cb54780e1 | ||
|
|
5393cedd93 | ||
|
|
08233dfe5c | ||
|
|
a5261f6aca | ||
|
|
6421daa54d | ||
|
|
6aca7d47e5 | ||
|
|
7b8d77e859 | ||
|
|
1a1e92c23e | ||
|
|
b76a99a468 | ||
|
|
d7225e909a | ||
|
|
0d891bbbf6 | ||
|
|
e524b7ab14 | ||
|
|
d75859ecb9 | ||
|
|
9051407d8d | ||
|
|
8497551e81 | ||
|
|
2dbcb7e5e7 | ||
|
|
c13523b70d | ||
|
|
a82a86c04f | ||
|
|
af7f5224cc | ||
|
|
321d89d430 | ||
|
|
897e84c207 | ||
|
|
ca6f7b63b1 | ||
|
|
c73f493a85 | ||
|
|
90d908ebf6 | ||
|
|
dd272bbbe7 | ||
|
|
d32b0ce0ab | ||
|
|
cdf4d2707b | ||
|
|
8e31cd0636 | ||
|
|
500df49e04 | ||
|
|
b574d2ba75 | ||
|
|
e082a11b47 | ||
|
|
21d947f99e | ||
|
|
1ec5c73acb | ||
|
|
aff92f000b | ||
|
|
36b5645a62 | ||
|
|
e6b26973cb | ||
|
|
1c0ea899d1 | ||
|
|
d09e3f64ed | ||
|
|
99019cae9d | ||
|
|
c247ba6bce | ||
|
|
2cbc9e1305 | ||
|
|
9a7c1d42eb | ||
|
|
d25e49e61f | ||
|
|
1b7dcd928d | ||
|
|
526cff8d2c | ||
|
|
1ccd939ea7 | ||
|
|
2c8c9ae88b | ||
|
|
8778fc7133 | ||
|
|
98e50dfa68 | ||
|
|
2631ea1ee8 | ||
|
|
f1a5a77e04 | ||
|
|
69f7169eef | ||
|
|
61338badd1 | ||
|
|
538f9f282a | ||
|
|
1124114140 | ||
|
|
16cec53f33 | ||
|
|
a8a617748f | ||
|
|
3dfe18a8cb | ||
|
|
89ec2daaf9 | ||
|
|
0e2af9c404 | ||
|
|
5a5c690ceb | ||
|
|
7f52c1c576 | ||
|
|
f1fb549f7f | ||
|
|
4aeb05c3cf | ||
|
|
9c804a259c | ||
|
|
0e0dec93d9 | ||
|
|
197be37bc7 | ||
|
|
8a2b4f5d20 | ||
|
|
195be7a65e | ||
|
|
760ddfa1aa | ||
|
|
ba273bbb7d | ||
|
|
dfe0063c77 | ||
|
|
ef3909e5c0 | ||
|
|
267fb591bd | ||
|
|
324ab61e56 | ||
|
|
e6e4c7c883 | ||
|
|
40087d8cb2 | ||
|
|
1859f18de2 | ||
|
|
8d37c1cb3f | ||
|
|
02186f9664 | ||
|
|
c62f8640be | ||
|
|
36dcbd6b88 | ||
|
|
f59e6946be | ||
|
|
55d1f3e690 | ||
|
|
4a2f97b1a5 | ||
|
|
a115aff41f | ||
|
|
dbb5cd66b6 | ||
|
|
eccf287180 | ||
|
|
06541715a9 | ||
|
|
714c9bc8bb | ||
|
|
513b9c46b7 | ||
|
|
8e7798f72c | ||
|
|
05a1f41f05 | ||
|
|
92b1d06948 | ||
|
|
f5a17da5d5 | ||
|
|
357239a63f | ||
|
|
f34ac5c921 | ||
|
|
c9ecde1007 | ||
|
|
15a3cfedbf | ||
|
|
e5544cd4f6 | ||
|
|
180337d376 | ||
|
|
7962da9ec3 | ||
|
|
7b50a68917 | ||
|
|
25ec95391e | ||
|
|
7a6f28231f | ||
|
|
231e56e3d3 | ||
|
|
4313695de6 | ||
|
|
4cd0e92bcc | ||
|
|
7d5ca48b75 | ||
|
|
afe5314d89 | ||
|
|
cefe8edcb6 | ||
|
|
c0250338b4 | ||
|
|
c99b8fb2b0 | ||
|
|
ec370881c7 | ||
|
|
49f5602f70 | ||
|
|
8dda7534a7 | ||
|
|
73302e7d6a | ||
|
|
5404a0ebbb | ||
|
|
cc46763fdd | ||
|
|
1cda143f7e | ||
|
|
0e9d966c83 | ||
|
|
2a73eee4f4 | ||
|
|
a068727c00 | ||
|
|
94a85e8677 | ||
|
|
d14bd30ae9 | ||
|
|
5b5e87ac86 | ||
|
|
c203b08c6c | ||
|
|
f0e16e62c8 | ||
|
|
b99d62c36c | ||
|
|
57c278111f | ||
|
|
7a4e874a19 | ||
|
|
20b05b4776 | ||
|
|
ffa5bd9075 | ||
|
|
3362ac9287 | ||
|
|
f164cf5f82 | ||
|
|
a6ba2e7840 | ||
|
|
3de7b5f5f4 | ||
|
|
6ebf8601b2 | ||
|
|
ee479701db | ||
|
|
1f9ba9c1e2 | ||
|
|
070c1dbbc3 | ||
|
|
bb9971d0b5 | ||
|
|
c1030a8230 | ||
|
|
07327d4ee3 | ||
|
|
6960cc2242 | ||
|
|
1beedbbad8 | ||
|
|
d28d7fcdb1 | ||
|
|
2dd1f01205 | ||
|
|
af64902c8f | ||
|
|
2c2f3c28ef | ||
|
|
629abe684d | ||
|
|
86cb5c0c0a | ||
|
|
b26b6aea8f | ||
|
|
d877bda185 | ||
|
|
1e4d8de94a | ||
|
|
4ba3e9f5c1 | ||
|
|
f14d8899b4 | ||
|
|
10e90eeba1 | ||
|
|
1239064f1c | ||
|
|
5f0a75d67f | ||
|
|
a5f8677656 | ||
|
|
5af230679b | ||
|
|
d32369ef48 | ||
|
|
37309e02c3 | ||
|
|
dd60a36d21 | ||
|
|
80a3361df9 | ||
|
|
3c020c5047 | ||
|
|
9519061a3a | ||
|
|
3eb89c75ed | ||
|
|
f3bb435ee3 | ||
|
|
7b2f9a7504 | ||
|
|
9c09cfe40c | ||
|
|
85c91fbc0b | ||
|
|
93b7eabd82 | ||
|
|
a540e1faeb | ||
|
|
c557278b4e | ||
|
|
bf7b3ffb9b | ||
|
|
bbaa0dd2a8 | ||
|
|
27cf269715 | ||
|
|
71e670769b | ||
|
|
e21927c078 | ||
|
|
ac8f2c0a6b | ||
|
|
d1f4a8ef40 | ||
|
|
aa10987ecc | ||
|
|
5d74807b9a | ||
|
|
b5934e8bca | ||
|
|
81ab1755a4 | ||
|
|
ecd3cbf4e0 | ||
|
|
332aa52bdb | ||
|
|
7badeb98b3 | ||
|
|
b5906fabb7 | ||
|
|
ad221ca08f | ||
|
|
eaae8475a8 | ||
|
|
13861cbfc6 | ||
|
|
4523b71928 | ||
|
|
a32bc54c7a | ||
|
|
2df88e57e6 | ||
|
|
c03ee29c5a | ||
|
|
5e4d250fe0 | ||
|
|
4616c8698b | ||
|
|
e831dae4ed | ||
|
|
31d4af785f | ||
|
|
e2606518b0 | ||
|
|
54b14f9a58 | ||
|
|
68b21a0055 | ||
|
|
049bab0101 | ||
|
|
495722e9d1 | ||
|
|
ca2d673a3e | ||
|
|
ce034e61c3 | ||
|
|
daae77293d | ||
|
|
f19e9b479d | ||
|
|
4cb3fe0492 | ||
|
|
b90cc4b604 | ||
|
|
ed2a25c4ff |
20
.editorconfig
Normal file
20
.editorconfig
Normal file
@ -0,0 +1,20 @@
|
||||
# This file is globally distributed to all container image projects from
|
||||
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[{Dockerfile*,**.yml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
123
.github/CONTRIBUTING.md
vendored
Normal file
123
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
# Contributing to baseimage-rdesktop
|
||||
|
||||
## Gotchas
|
||||
|
||||
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
|
||||
* Read, and fill the Pull Request template
|
||||
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
|
||||
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
|
||||
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
|
||||
|
||||
## Common files
|
||||
|
||||
| File | Use case |
|
||||
| :----: | --- |
|
||||
| `Dockerfile` | Dockerfile used to build amd64 images |
|
||||
| `Dockerfile.aarch64` | Dockerfile used to build 64bit ARM architectures |
|
||||
| `Dockerfile.armhf` | Dockerfile used to build 32bit ARM architectures |
|
||||
| `Jenkinsfile` | This file is a product of our builder and should not be edited directly. This is used to build the image |
|
||||
| `jenkins-vars.yml` | This file is used to generate the `Jenkinsfile` mentioned above, it only affects the build-process |
|
||||
| `package_versions.txt` | This file is generated as a part of the build-process and should not be edited directly. It lists all the installed packages and their versions |
|
||||
| `README.md` | This file is a product of our builder and should not be edited directly. This displays the readme for the repository and image registries |
|
||||
| `readme-vars.yml` | This file is used to generate the `README.md` |
|
||||
|
||||
## Readme
|
||||
|
||||
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
|
||||
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-rdesktop/edit/master/readme-vars.yml).
|
||||
|
||||
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
|
||||
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io)
|
||||
|
||||
### Fixing typos or clarify the text in the readme
|
||||
|
||||
There are variables for multiple parts of the readme, the most common ones are:
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| `project_blurb` | This is the short excerpt shown above the project logo. |
|
||||
| `app_setup_block` | This is the text that shows up under "Application Setup" if enabled |
|
||||
|
||||
### Parameters
|
||||
|
||||
The compose and run examples are also generated from these variables.
|
||||
|
||||
We have a [reference file](https://github.com/linuxserver/docker-jenkins-builder/blob/master/vars/_container-vars-blank) in our Jenkins Builder.
|
||||
|
||||
These are prefixed with `param_` for required parameters, or `opt_param` for optional parameters, except for `cap_add`.
|
||||
Remember to enable param, if currently disabled. This differs between parameters, and can be seen in the reference file.
|
||||
|
||||
Devices, environment variables, ports and volumes expects its variables in a certain way.
|
||||
|
||||
### Devices
|
||||
|
||||
```yml
|
||||
param_devices:
|
||||
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
|
||||
opt_param_devices:
|
||||
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
|
||||
```
|
||||
|
||||
### Environment variables
|
||||
|
||||
```yml
|
||||
param_env_vars:
|
||||
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
|
||||
opt_param_env_vars:
|
||||
- { env_var: "VERSION", env_value: "latest", desc: "Supported values are LATEST, PLEXPASS or a specific version number." }
|
||||
```
|
||||
|
||||
### Ports
|
||||
|
||||
```yml
|
||||
param_ports:
|
||||
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
|
||||
opt_param_ports:
|
||||
- { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
|
||||
```
|
||||
|
||||
### Volumes
|
||||
|
||||
```yml
|
||||
param_volumes:
|
||||
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
|
||||
opt_param_volumes:
|
||||
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
|
||||
```
|
||||
|
||||
### Testing template changes
|
||||
|
||||
After you make any changes to the templates, you can use our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) to have the files updated from the modified templates. Please use the command found under `Running Locally` [on this page](https://github.com/linuxserver/docker-jenkins-builder/blob/master/README.md) to generate them prior to submitting a PR.
|
||||
|
||||
## Dockerfiles
|
||||
|
||||
We use multiple Dockerfiles in our repos, this is because sometimes some CPU architectures needs different packages to work.
|
||||
If you are proposing additional packages to be added, ensure that you added the packages to all the Dockerfiles in alphabetical order.
|
||||
|
||||
### Testing your changes
|
||||
|
||||
```bash
|
||||
git clone https://github.com/linuxserver/docker-baseimage-rdesktop.git
|
||||
cd docker-baseimage-rdesktop
|
||||
docker build \
|
||||
--no-cache \
|
||||
--pull \
|
||||
-t linuxserver/baseimage-rdesktop:latest .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
|
||||
|
||||
```bash
|
||||
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
|
||||
```
|
||||
|
||||
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
|
||||
|
||||
## Update the changelog
|
||||
|
||||
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-rdesktop/tree/master/root), add an entry to the changelog
|
||||
|
||||
```yml
|
||||
changelogs:
|
||||
- { date: "DD.MM.YY:", desc: "Added some love to templates" }
|
||||
```
|
||||
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@ -1 +1,2 @@
|
||||
github: linuxserver
|
||||
open_collective: linuxserver
|
||||
|
||||
34
.github/ISSUE_TEMPLATE.md
vendored
34
.github/ISSUE_TEMPLATE.md
vendored
@ -1,34 +0,0 @@
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[][linuxserverurl]
|
||||
|
||||
If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support.
|
||||
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
------------------------------
|
||||
|
||||
## Expected Behavior
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
## Current Behavior
|
||||
<!--- Tell us what happens instead of the expected behavior -->
|
||||
|
||||
## Steps to Reproduce
|
||||
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Environment
|
||||
**OS:**
|
||||
**CPU architecture:** x86_64/arm32/arm64
|
||||
**How docker service was installed:**
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||
|
||||
## Command used to create docker container (run/create/compose/screenshot)
|
||||
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
|
||||
|
||||
## Docker logs
|
||||
<!--- Provide a full docker log, output of "docker logs baseimage-rdesktop" -->
|
||||
13
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
13
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Discord chat support
|
||||
url: https://linuxserver.io/discord
|
||||
about: Realtime support / chat with the community and the team.
|
||||
|
||||
- name: Discourse discussion forum
|
||||
url: https://discourse.linuxserver.io
|
||||
about: Post on our community forum.
|
||||
|
||||
- name: Documentation
|
||||
url: https://docs.linuxserver.io
|
||||
about: Documentation - information about all of our containers.
|
||||
68
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
Normal file
68
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
# Based on the issue template
|
||||
name: Bug report
|
||||
description: Create a report to help us improve
|
||||
title: "[BUG] <title>"
|
||||
labels: [Bug]
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
description: Please search to see if an issue already exists for the bug you encountered.
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Current Behavior
|
||||
description: Tell us what happens instead of the expected behavior.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: Tell us what should happen.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps To Reproduce
|
||||
description: Steps to reproduce the behavior.
|
||||
placeholder: |
|
||||
1. In this environment...
|
||||
2. With this config...
|
||||
3. Run '...'
|
||||
4. See error...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment
|
||||
description: |
|
||||
examples:
|
||||
- **OS**: Ubuntu 20.04
|
||||
- **How docker service was installed**: distro's packagemanager
|
||||
value: |
|
||||
- OS:
|
||||
- How docker service was installed:
|
||||
render: markdown
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Docker creation
|
||||
description: |
|
||||
Command used to create docker container
|
||||
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
|
||||
render: bash
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
description: |
|
||||
Provide a full docker log, output of "docker logs baseimage-rdesktop"
|
||||
label: Container logs
|
||||
placeholder: |
|
||||
Output of `docker logs baseimage-rdesktop`
|
||||
render: bash
|
||||
validations:
|
||||
required: true
|
||||
31
.github/ISSUE_TEMPLATE/issue.feature.yml
vendored
Normal file
31
.github/ISSUE_TEMPLATE/issue.feature.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
# Based on the issue template
|
||||
name: Feature request
|
||||
description: Suggest an idea for this project
|
||||
title: "[FEAT] <title>"
|
||||
labels: [enhancement]
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is this a new feature request?
|
||||
description: Please search to see if a feature request already exists.
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Wanted change
|
||||
description: Tell us what you want to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Reason for change
|
||||
description: Justify your request, why do you want it, what is the benefit.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Proposed code change
|
||||
description: Do you have a potential code change in mind?
|
||||
validations:
|
||||
required: false
|
||||
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -2,11 +2,11 @@
|
||||
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[][linuxserverurl]
|
||||
|
||||
|
||||
|
||||
<!--- Before submitting a pull request please check the following -->
|
||||
|
||||
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR -->
|
||||
<!--- If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR -->
|
||||
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
|
||||
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
|
||||
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
|
||||
@ -21,7 +21,11 @@
|
||||
|
||||
------------------------------
|
||||
|
||||
We welcome all PR’s though this doesn’t guarantee it will be accepted.
|
||||
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-rdesktop/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
|
||||
|
||||
------------------------------
|
||||
|
||||
<!--- We welcome all PR’s though this doesn’t guarantee it will be accepted. -->
|
||||
|
||||
## Description:
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
19
.github/workflows/call_issue_pr_tracker.yml
vendored
Normal file
19
.github/workflows/call_issue_pr_tracker.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
name: Issue & PR Tracker
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened,reopened,labeled,unlabeled,closed]
|
||||
pull_request_target:
|
||||
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
|
||||
pull_request_review:
|
||||
types: [submitted,edited,dismissed]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
manage-project:
|
||||
permissions:
|
||||
issues: write
|
||||
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
|
||||
secrets: inherit
|
||||
16
.github/workflows/call_issues_cron.yml
vendored
Normal file
16
.github/workflows/call_issues_cron.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
name: Mark stale issues and pull requests
|
||||
on:
|
||||
schedule:
|
||||
- cron: '25 7 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
|
||||
secrets: inherit
|
||||
28
.github/workflows/external_trigger.yml
vendored
Normal file
28
.github/workflows/external_trigger.yml
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
name: External Trigger Main
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-master:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: External Trigger
|
||||
if: github.ref == 'refs/heads/master'
|
||||
env:
|
||||
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
|
||||
run: |
|
||||
printf "# External trigger for docker-baseimage-rdesktop\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Type is \`os\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
if grep -q "^baseimage-rdesktop_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
48
.github/workflows/external_trigger_scheduler.yml
vendored
Normal file
48
.github/workflows/external_trigger_scheduler.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
name: External Trigger Scheduler
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '55 * * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
|
||||
- name: External Trigger Scheduler
|
||||
run: |
|
||||
printf "# External trigger scheduler for docker-baseimage-rdesktop\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
|
||||
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
|
||||
do
|
||||
if [[ "${br}" == "HEAD" ]]; then
|
||||
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
continue
|
||||
fi
|
||||
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-rdesktop/${br}/jenkins-vars.yml)
|
||||
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
|
||||
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
|
||||
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
|
||||
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
|
||||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-rdesktop/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
|
||||
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
|
||||
curl -iX POST \
|
||||
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
-d "{\"ref\":\"refs/heads/${br}\"}" \
|
||||
https://api.github.com/repos/linuxserver/docker-baseimage-rdesktop/actions/workflows/external_trigger.yml/dispatches
|
||||
else
|
||||
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
done
|
||||
19
.github/workflows/greetings.yml
vendored
Normal file
19
.github/workflows/greetings.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
name: Greetings
|
||||
|
||||
on: [pull_request_target, issues]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
greeting:
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
with:
|
||||
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
|
||||
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-rdesktop/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
103
.github/workflows/package_trigger_scheduler.yml
vendored
Normal file
103
.github/workflows/package_trigger_scheduler.yml
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
name: Package Trigger Scheduler
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '52 13 * * 5'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
package-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
|
||||
- name: Package Trigger Scheduler
|
||||
env:
|
||||
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
|
||||
run: |
|
||||
printf "# Package trigger scheduler for docker-baseimage-rdesktop\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
|
||||
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
|
||||
do
|
||||
if [[ "${br}" == "HEAD" ]]; then
|
||||
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
continue
|
||||
fi
|
||||
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-rdesktop/${br}/jenkins-vars.yml)
|
||||
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-rdesktop/${br}/Jenkinsfile >/dev/null 2>&1; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
|
||||
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
|
||||
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-rdesktop/${br}/readme-vars.yml)
|
||||
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
elif grep -q "^baseimage-rdesktop_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`baseimage-rdesktop_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-rdesktop/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
else
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
|
||||
printf "> To disable, add \`baseimage-rdesktop_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
|
||||
triggered_branches="${triggered_branches}${br} "
|
||||
response=$(curl -iX POST \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-rdesktop/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
if [[ -z "${response}" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Jenkins build could not be triggered. Skipping branch."
|
||||
continue
|
||||
fi
|
||||
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
|
||||
sleep 10
|
||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||
buildurl="${buildurl%$'\r'}"
|
||||
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
|
||||
if ! curl -ifX POST \
|
||||
"${buildurl}submitDescription" \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
|
||||
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||
--data-urlencode "Submit=Submit"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Unable to change the Jenkins job description."
|
||||
fi
|
||||
sleep 20
|
||||
fi
|
||||
else
|
||||
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
done
|
||||
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
|
||||
if [[ -n "${triggered_branches}" ]]; then
|
||||
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
|
||||
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-rdesktop/activity/ \n"
|
||||
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
|
||||
fi
|
||||
if [[ -n "${skipped_branches}" ]]; then
|
||||
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
|
||||
fi
|
||||
echo "**** Notifying Discord ****"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Package Check Build(s) for baseimage-rdesktop** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
fi
|
||||
12
.github/workflows/permissions.yml
vendored
Normal file
12
.github/workflows/permissions.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
name: Permission check
|
||||
on:
|
||||
pull_request_target:
|
||||
paths:
|
||||
- '**/run'
|
||||
- '**/finish'
|
||||
- '**/check'
|
||||
- 'root/migrations/*'
|
||||
|
||||
jobs:
|
||||
permission_check:
|
||||
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.jenkins-external
|
||||
216
Dockerfile
216
Dockerfile
@ -1,54 +1,54 @@
|
||||
FROM lsiobase/ubuntu:focal as buildstage
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
ARG XRDP_PULSE_VERSION=v0.4
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS buildstage
|
||||
|
||||
ARG XRDP_PULSE_VERSION=v0.7
|
||||
ARG DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
devscripts \
|
||||
dpkg-dev \
|
||||
git \
|
||||
libpulse-dev \
|
||||
pulseaudio && \
|
||||
apt build-dep -y \
|
||||
pulseaudio \
|
||||
xrdp
|
||||
echo "**** install build deps ****" && \
|
||||
sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
devscripts \
|
||||
dpkg-dev \
|
||||
git \
|
||||
libpulse-dev \
|
||||
meson \
|
||||
pulseaudio && \
|
||||
apt build-dep -y \
|
||||
pulseaudio \
|
||||
xrdp
|
||||
|
||||
RUN \
|
||||
echo "**** build pulseaudio modules ****" && \
|
||||
mkdir -p /buildout/var/lib/xrdp-pulseaudio-installer && \
|
||||
tmp=$(mktemp -d); cd "$tmp" && \
|
||||
pulseaudio_version=$(dpkg-query -W -f='${source:Version}' pulseaudio|awk -F: '{print $2}') && \
|
||||
pulseaudio_upstream_version=$(dpkg-query -W -f='${source:Upstream-Version}' pulseaudio) && \
|
||||
set -- $(apt-cache policy pulseaudio | fgrep -A1 '***' | tail -1) && \
|
||||
mirror=$2 && \
|
||||
suite=${3#*/} && \
|
||||
dget -u "$mirror/pool/$suite/p/pulseaudio/pulseaudio_$pulseaudio_version.dsc" && \
|
||||
cd "pulseaudio-$pulseaudio_upstream_version" && \
|
||||
./configure && \
|
||||
cd - && \
|
||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
|
||||
cd pulseaudio-module-xrdp && \
|
||||
git checkout ${XRDP_PULSE_VERSION} && \
|
||||
./bootstrap && \
|
||||
./configure PULSE_DIR="$tmp/pulseaudio-$pulseaudio_upstream_version" && \
|
||||
make && \
|
||||
install -t "/buildout/var/lib/xrdp-pulseaudio-installer" -D -m 644 src/.libs/*.so
|
||||
echo "**** build pulseaudio modules ****" && \
|
||||
mkdir -p /buildout/var/lib/xrdp-pulseaudio-installer && \
|
||||
tmp=$(mktemp -d); cd "$tmp" && \
|
||||
pulseaudio_upstream_version=$(dpkg-query -W -f='${source:Upstream-Version}' pulseaudio) && \
|
||||
apt-get source pulseaudio && \
|
||||
cd "pulseaudio-$pulseaudio_upstream_version" && \
|
||||
meson build && \
|
||||
cd - && \
|
||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
|
||||
cd pulseaudio-module-xrdp && \
|
||||
git checkout ${XRDP_PULSE_VERSION} && \
|
||||
./bootstrap && \
|
||||
./configure PULSE_DIR="$tmp/pulseaudio-$pulseaudio_upstream_version" && \
|
||||
make && \
|
||||
install -t "/buildout/var/lib/xrdp-pulseaudio-installer" -D -m 644 src/.libs/*.so
|
||||
|
||||
RUN \
|
||||
echo "**** build xrdp with fuse disabled ****" && \
|
||||
cd /tmp && \
|
||||
apt-get source xrdp && \
|
||||
cd xrdp-* && \
|
||||
sed -i 's/--enable-fuse/--disable-fuse/g' debian/rules && \
|
||||
debuild -b -uc -us && \
|
||||
cp -ax ../xrdp_*.deb /buildout/xrdp.deb
|
||||
echo "**** build xrdp with fuse disabled ****" && \
|
||||
cd /tmp && \
|
||||
apt-get source xrdp && \
|
||||
cd xrdp-* && \
|
||||
sed -i 's/--enable-fuse/--disable-fuse/g' debian/rules && \
|
||||
debuild -b -uc -us && \
|
||||
cp -ax ../xrdp_*.deb /buildout/xrdp.deb
|
||||
|
||||
# runtime stage
|
||||
FROM lsiobase/ubuntu:focal
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -59,50 +59,96 @@ LABEL maintainer="thelamer"
|
||||
# copy over libs and installers from build stage
|
||||
COPY --from=buildstage /buildout/ /
|
||||
|
||||
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES=all \
|
||||
HOME=/config
|
||||
|
||||
RUN \
|
||||
echo "**** install deps ****" && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y --no-install-recommends \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dbus-x11 \
|
||||
gawk \
|
||||
gnupg2 \
|
||||
libfuse2 \
|
||||
libx11-dev \
|
||||
libxfixes3 \
|
||||
libxml2 \
|
||||
libxrandr2 \
|
||||
pulseaudio \
|
||||
software-properties-common \
|
||||
sudo \
|
||||
x11-apps \
|
||||
x11-xserver-utils \
|
||||
xfonts-base \
|
||||
xorgxrdp \
|
||||
xrdp \
|
||||
xserver-xorg-core \
|
||||
xutils \
|
||||
zlib1g && \
|
||||
dpkg -i /xrdp.deb && \
|
||||
rm /xrdp.deb && \
|
||||
echo "**** install docker ****" && \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
|
||||
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" && \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
docker-ce-cli && \
|
||||
echo "**** cleanup and user perms ****" && \
|
||||
echo "abc:abc" | chpasswd && \
|
||||
usermod -aG sudo abc && \
|
||||
apt-get autoclean && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/* \
|
||||
/tmp/*
|
||||
echo "**** enable locales ****" && \
|
||||
sed -i \
|
||||
'/locale/d' \
|
||||
/etc/dpkg/dpkg.cfg.d/excludes && \
|
||||
echo "**** add docker repos ****" && \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /usr/share/keyrings/docker.asc >/dev/null && \
|
||||
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list && \
|
||||
echo "**** install deps ****" && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y --no-install-recommends \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
dbus-x11 \
|
||||
docker-ce-cli \
|
||||
docker-compose-plugin \
|
||||
fonts-noto-color-emoji \
|
||||
fonts-noto-core \
|
||||
gawk \
|
||||
gnupg2 \
|
||||
libfuse2 \
|
||||
libx11-dev \
|
||||
libxfixes3 \
|
||||
libxml2 \
|
||||
libxrandr2 \
|
||||
locales-all \
|
||||
mesa-va-drivers \
|
||||
mesa-vulkan-drivers \
|
||||
netcat-openbsd \
|
||||
openbox \
|
||||
openssh-client \
|
||||
pulseaudio \
|
||||
software-properties-common \
|
||||
sudo \
|
||||
x11-apps \
|
||||
x11-xserver-utils \
|
||||
xfonts-base \
|
||||
xorgxrdp \
|
||||
xrdp \
|
||||
xserver-common \
|
||||
xserver-xorg-core \
|
||||
xserver-xorg-video-amdgpu \
|
||||
xserver-xorg-video-ati \
|
||||
xserver-xorg-video-intel \
|
||||
xserver-xorg-video-nouveau \
|
||||
xserver-xorg-video-qxl \
|
||||
xterm \
|
||||
xutils \
|
||||
zlib1g && \
|
||||
dpkg -i /xrdp.deb && \
|
||||
rm /xrdp.deb && \
|
||||
echo "**** openbox tweaks ****" && \
|
||||
sed -i \
|
||||
-e 's/NLIMC/NLMC/g' \
|
||||
-e '/debian-menu/d' \
|
||||
-e 's|</applications>| <application class="*"><maximized>yes</maximized></application>\n</applications>|' \
|
||||
-e 's|</keyboard>| <keybind key="C-S-d"><action name="ToggleDecorations"/></keybind>\n</keyboard>|' \
|
||||
/etc/xdg/openbox/rc.xml && \
|
||||
echo "**** user perms ****" && \
|
||||
sed -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' \
|
||||
-i /etc/sudoers && \
|
||||
echo "abc:abc" | chpasswd && \
|
||||
usermod -s /bin/bash abc && \
|
||||
usermod -aG sudo abc && \
|
||||
echo "**** proot-apps ****" && \
|
||||
mkdir /proot-apps/ && \
|
||||
PAPPS_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/proot-apps/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
|
||||
curl -L https://github.com/linuxserver/proot-apps/releases/download/${PAPPS_RELEASE}/proot-apps-x86_64.tar.gz \
|
||||
| tar -xzf - -C /proot-apps/ && \
|
||||
echo "${PAPPS_RELEASE}" > /proot-apps/pversion && \
|
||||
echo "**** locales ****" && \
|
||||
for LOCALE in $(curl -sL https://raw.githubusercontent.com/thelamer/lang-stash/master/langs); do \
|
||||
localedef -i $LOCALE -f UTF-8 $LOCALE.UTF-8; \
|
||||
done && \
|
||||
echo "**** theme ****" && \
|
||||
curl -s https://raw.githubusercontent.com/thelamer/lang-stash/master/theme.tar.gz \
|
||||
| tar xzvf - -C /usr/share/themes/Clearlooks/openbox-3/ && \
|
||||
echo "**** cleanup ****" && \
|
||||
apt-get autoclean && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/* \
|
||||
/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
@ -1,54 +1,54 @@
|
||||
FROM lsiobase/ubuntu:arm64v8-focal as buildstage
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
ARG XRDP_PULSE_VERSION=v0.4
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble AS buildstage
|
||||
|
||||
ARG XRDP_PULSE_VERSION=v0.7
|
||||
ARG DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
devscripts \
|
||||
dpkg-dev \
|
||||
git \
|
||||
libpulse-dev \
|
||||
pulseaudio && \
|
||||
apt build-dep -y \
|
||||
pulseaudio \
|
||||
xrdp
|
||||
echo "**** install build deps ****" && \
|
||||
sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
devscripts \
|
||||
dpkg-dev \
|
||||
git \
|
||||
libpulse-dev \
|
||||
meson \
|
||||
pulseaudio && \
|
||||
apt build-dep -y \
|
||||
pulseaudio \
|
||||
xrdp
|
||||
|
||||
RUN \
|
||||
echo "**** build pulseaudio modules ****" && \
|
||||
mkdir -p /buildout/var/lib/xrdp-pulseaudio-installer && \
|
||||
tmp=$(mktemp -d); cd "$tmp" && \
|
||||
pulseaudio_version=$(dpkg-query -W -f='${source:Version}' pulseaudio|awk -F: '{print $2}') && \
|
||||
pulseaudio_upstream_version=$(dpkg-query -W -f='${source:Upstream-Version}' pulseaudio) && \
|
||||
set -- $(apt-cache policy pulseaudio | fgrep -A1 '***' | tail -1) && \
|
||||
mirror=$2 && \
|
||||
suite=${3#*/} && \
|
||||
dget -u "$mirror/pool/$suite/p/pulseaudio/pulseaudio_$pulseaudio_version.dsc" && \
|
||||
cd "pulseaudio-$pulseaudio_upstream_version" && \
|
||||
./configure && \
|
||||
cd - && \
|
||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
|
||||
cd pulseaudio-module-xrdp && \
|
||||
git checkout ${XRDP_PULSE_VERSION} && \
|
||||
./bootstrap && \
|
||||
./configure PULSE_DIR="$tmp/pulseaudio-$pulseaudio_upstream_version" && \
|
||||
make && \
|
||||
install -t "/buildout/var/lib/xrdp-pulseaudio-installer" -D -m 644 src/.libs/*.so
|
||||
echo "**** build pulseaudio modules ****" && \
|
||||
mkdir -p /buildout/var/lib/xrdp-pulseaudio-installer && \
|
||||
tmp=$(mktemp -d); cd "$tmp" && \
|
||||
pulseaudio_upstream_version=$(dpkg-query -W -f='${source:Upstream-Version}' pulseaudio) && \
|
||||
apt-get source pulseaudio && \
|
||||
cd "pulseaudio-$pulseaudio_upstream_version" && \
|
||||
meson build && \
|
||||
cd - && \
|
||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
|
||||
cd pulseaudio-module-xrdp && \
|
||||
git checkout ${XRDP_PULSE_VERSION} && \
|
||||
./bootstrap && \
|
||||
./configure PULSE_DIR="$tmp/pulseaudio-$pulseaudio_upstream_version" && \
|
||||
make && \
|
||||
install -t "/buildout/var/lib/xrdp-pulseaudio-installer" -D -m 644 src/.libs/*.so
|
||||
|
||||
RUN \
|
||||
echo "**** build xrdp with fuse disabled ****" && \
|
||||
cd /tmp && \
|
||||
apt-get source xrdp && \
|
||||
cd xrdp-* && \
|
||||
sed -i 's/--enable-fuse/--disable-fuse/g' debian/rules && \
|
||||
debuild -b -uc -us && \
|
||||
cp -ax ../xrdp_*.deb /buildout/xrdp.deb
|
||||
echo "**** build xrdp with fuse disabled ****" && \
|
||||
cd /tmp && \
|
||||
apt-get source xrdp && \
|
||||
cd xrdp-* && \
|
||||
sed -i 's/--enable-fuse/--disable-fuse/g' debian/rules && \
|
||||
debuild -b -uc -us && \
|
||||
cp -ax ../xrdp_*.deb /buildout/xrdp.deb
|
||||
|
||||
# runtime stage
|
||||
FROM lsiobase/ubuntu:arm64v8-focal
|
||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -59,50 +59,96 @@ LABEL maintainer="thelamer"
|
||||
# copy over libs and installers from build stage
|
||||
COPY --from=buildstage /buildout/ /
|
||||
|
||||
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
|
||||
ENV NVIDIA_DRIVER_CAPABILITIES=all \
|
||||
HOME=/config
|
||||
|
||||
RUN \
|
||||
echo "**** install deps ****" && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y --no-install-recommends \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dbus-x11 \
|
||||
gawk \
|
||||
gnupg2 \
|
||||
libfuse2 \
|
||||
libx11-dev \
|
||||
libxfixes3 \
|
||||
libxml2 \
|
||||
libxrandr2 \
|
||||
pulseaudio \
|
||||
software-properties-common \
|
||||
sudo \
|
||||
x11-apps \
|
||||
x11-xserver-utils \
|
||||
xfonts-base \
|
||||
xorgxrdp \
|
||||
xrdp \
|
||||
xserver-xorg-core \
|
||||
xutils \
|
||||
zlib1g && \
|
||||
dpkg -i /xrdp.deb && \
|
||||
rm /xrdp.deb && \
|
||||
echo "**** install docker ****" && \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
|
||||
add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu bionic stable" && \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
docker-ce-cli && \
|
||||
echo "**** cleanup and user perms ****" && \
|
||||
echo "abc:abc" | chpasswd && \
|
||||
usermod -aG sudo abc && \
|
||||
apt-get autoclean && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/* \
|
||||
/tmp/*
|
||||
echo "**** enable locales ****" && \
|
||||
sed -i \
|
||||
'/locale/d' \
|
||||
/etc/dpkg/dpkg.cfg.d/excludes && \
|
||||
echo "**** add docker repos ****" && \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /usr/share/keyrings/docker.asc >/dev/null && \
|
||||
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list && \
|
||||
echo "**** install deps ****" && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y --no-install-recommends \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
dbus-x11 \
|
||||
docker-ce-cli \
|
||||
docker-compose-plugin \
|
||||
fonts-noto-color-emoji \
|
||||
fonts-noto-core \
|
||||
gawk \
|
||||
gnupg2 \
|
||||
libfuse2 \
|
||||
libx11-dev \
|
||||
libxfixes3 \
|
||||
libxml2 \
|
||||
libxrandr2 \
|
||||
locales-all \
|
||||
mesa-va-drivers \
|
||||
mesa-vulkan-drivers \
|
||||
netcat-openbsd \
|
||||
openbox \
|
||||
openssh-client \
|
||||
pulseaudio \
|
||||
software-properties-common \
|
||||
sudo \
|
||||
x11-apps \
|
||||
x11-xserver-utils \
|
||||
xfonts-base \
|
||||
xorgxrdp \
|
||||
xrdp \
|
||||
xserver-common \
|
||||
xserver-xorg-core \
|
||||
xserver-xorg-video-amdgpu \
|
||||
xserver-xorg-video-armsoc-endlessm \
|
||||
xserver-xorg-video-ati \
|
||||
xserver-xorg-video-nouveau \
|
||||
xserver-xorg-video-qxl \
|
||||
xterm \
|
||||
xutils \
|
||||
zlib1g && \
|
||||
dpkg -i /xrdp.deb && \
|
||||
rm /xrdp.deb && \
|
||||
echo "**** openbox tweaks ****" && \
|
||||
sed -i \
|
||||
-e 's/NLIMC/NLMC/g' \
|
||||
-e '/debian-menu/d' \
|
||||
-e 's|</applications>| <application class="*"><maximized>yes</maximized></application>\n</applications>|' \
|
||||
-e 's|</keyboard>| <keybind key="C-S-d"><action name="ToggleDecorations"/></keybind>\n</keyboard>|' \
|
||||
/etc/xdg/openbox/rc.xml && \
|
||||
echo "**** user perms ****" && \
|
||||
sed -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' \
|
||||
-i /etc/sudoers && \
|
||||
echo "abc:abc" | chpasswd && \
|
||||
usermod -s /bin/bash abc && \
|
||||
usermod -aG sudo abc && \
|
||||
echo "**** proot-apps ****" && \
|
||||
mkdir /proot-apps/ && \
|
||||
PAPPS_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/proot-apps/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
|
||||
curl -L https://github.com/linuxserver/proot-apps/releases/download/${PAPPS_RELEASE}/proot-apps-aarch64.tar.gz \
|
||||
| tar -xzf - -C /proot-apps/ && \
|
||||
echo "${PAPPS_RELEASE}" > /proot-apps/pversion && \
|
||||
echo "**** locales ****" && \
|
||||
for LOCALE in $(curl -sL https://raw.githubusercontent.com/thelamer/lang-stash/master/langs); do \
|
||||
localedef -i $LOCALE -f UTF-8 $LOCALE.UTF-8; \
|
||||
done && \
|
||||
echo "**** theme ****" && \
|
||||
curl -s https://raw.githubusercontent.com/thelamer/lang-stash/master/theme.tar.gz \
|
||||
| tar xzvf - -C /usr/share/themes/Clearlooks/openbox-3/ && \
|
||||
echo "**** cleanup ****" && \
|
||||
apt-get autoclean && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/* \
|
||||
/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
112
Dockerfile.armhf
112
Dockerfile.armhf
@ -1,112 +0,0 @@
|
||||
FROM lsiobase/ubuntu:arm32v7-focal as buildstage
|
||||
|
||||
ARG XRDP_PULSE_VERSION=v0.4
|
||||
|
||||
RUN \
|
||||
echo "**** install build deps ****" && \
|
||||
sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
build-essential \
|
||||
devscripts \
|
||||
dpkg-dev \
|
||||
git \
|
||||
libpulse-dev \
|
||||
pulseaudio && \
|
||||
apt build-dep -y \
|
||||
pulseaudio \
|
||||
xrdp
|
||||
|
||||
RUN \
|
||||
echo "**** build pulseaudio modules ****" && \
|
||||
mkdir -p /buildout/var/lib/xrdp-pulseaudio-installer && \
|
||||
tmp=$(mktemp -d); cd "$tmp" && \
|
||||
pulseaudio_version=$(dpkg-query -W -f='${source:Version}' pulseaudio|awk -F: '{print $2}') && \
|
||||
pulseaudio_upstream_version=$(dpkg-query -W -f='${source:Upstream-Version}' pulseaudio) && \
|
||||
set -- $(apt-cache policy pulseaudio | fgrep -A1 '***' | tail -1) && \
|
||||
mirror=$2 && \
|
||||
suite=${3#*/} && \
|
||||
dget -u "$mirror/pool/$suite/p/pulseaudio/pulseaudio_$pulseaudio_version.dsc" && \
|
||||
cd "pulseaudio-$pulseaudio_upstream_version" && \
|
||||
./configure && \
|
||||
cd - && \
|
||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
|
||||
cd pulseaudio-module-xrdp && \
|
||||
git checkout ${XRDP_PULSE_VERSION} && \
|
||||
./bootstrap && \
|
||||
./configure PULSE_DIR="$tmp/pulseaudio-$pulseaudio_upstream_version" && \
|
||||
make && \
|
||||
install -t "/buildout/var/lib/xrdp-pulseaudio-installer" -D -m 644 src/.libs/*.so
|
||||
|
||||
RUN \
|
||||
echo "**** build xrdp with fuse disabled ****" && \
|
||||
cd /tmp && \
|
||||
apt-get source xrdp && \
|
||||
cd xrdp-* && \
|
||||
sed -i 's/--enable-fuse/--disable-fuse/g' debian/rules && \
|
||||
debuild -b -uc -us && \
|
||||
cp -ax ../xrdp_*.deb /buildout/xrdp.deb
|
||||
|
||||
# runtime stage
|
||||
FROM lsiobase/ubuntu:arm32v7-focal
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||
LABEL maintainer="thelamer"
|
||||
|
||||
# copy over libs and installers from build stage
|
||||
COPY --from=buildstage /buildout/ /
|
||||
|
||||
RUN \
|
||||
echo "**** install deps ****" && \
|
||||
ldconfig && \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
apt-get install -y --no-install-recommends \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dbus-x11 \
|
||||
gawk \
|
||||
gnupg2 \
|
||||
libfuse2 \
|
||||
libx11-dev \
|
||||
libxfixes3 \
|
||||
libxml2 \
|
||||
libxrandr2 \
|
||||
pulseaudio \
|
||||
software-properties-common \
|
||||
sudo \
|
||||
x11-apps \
|
||||
x11-xserver-utils \
|
||||
xfonts-base \
|
||||
xorgxrdp \
|
||||
xrdp \
|
||||
xserver-xorg-core \
|
||||
xutils \
|
||||
zlib1g && \
|
||||
dpkg -i /xrdp.deb && \
|
||||
rm /xrdp.deb && \
|
||||
echo "**** install docker ****" && \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
|
||||
add-apt-repository "deb [arch=arm] https://download.docker.com/linux/ubuntu bionic stable" && \
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
docker-ce-cli && \
|
||||
echo "**** cleanup and user perms ****" && \
|
||||
echo "abc:abc" | chpasswd && \
|
||||
usermod -aG sudo abc && \
|
||||
apt-get autoclean && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/tmp/* \
|
||||
/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
# ports and volumes
|
||||
EXPOSE 3389
|
||||
VOLUME /config
|
||||
989
Jenkinsfile
vendored
989
Jenkinsfile
vendored
File diff suppressed because it is too large
Load Diff
185
README.md
185
README.md
@ -1,26 +1,179 @@
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[forumurl]: https://forum.linuxserver.io
|
||||
[ircurl]: https://www.linuxserver.io/irc/
|
||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||
<!-- Please read https://github.com/linuxserver/docker-baseimage-rdesktop/blob/master/.github/CONTRIBUTING.md -->
|
||||
# rdesktop Base Images from LinuxServer
|
||||
|
||||
[][linuxserverurl]
|
||||
The purpose of these images is to provide a full featured rdesktop Linux desktop experience for any Linux application or desktop environment. They ship with passwordless sudo to allow easy package installation, testing, and customization. By default they have no logic to mount out anything but the users home directory, meaning on image updates anything outside of `/config` will be lost.
|
||||
|
||||
## Contact information:-
|
||||
- Support for using our base images in your own projects is provided on a Reasonable Endeavours basis, please see our [Support Policy](https://www.linuxserver.io/supportpolicy) for details.
|
||||
- There is no `latest` tag for any of our base images, by design. We often make breaking changes between versions, and we don't publish release notes like we do for the downstream images.
|
||||
- If you're intending to distribute an image using one of our bases, please read our [docs on container branding](https://docs.linuxserver.io/general/container-branding/) first.
|
||||
- Images are supported for as long as the upstream release on which they are based, after which we will stop building new base images for that version.
|
||||
|
||||
| Type | Address/Details |
|
||||
| :---: | --- |
|
||||
| Discord | [Discord](https://discord.gg/YWrKVTn) |
|
||||
| IRC | freenode at `#linuxserver.io` more information at:- [IRC][ircurl]
|
||||
| Forum | [LinuxServer.io forum][forumurl] |
|
||||
# Options
|
||||
|
||||
|
||||
|
||||
All application settings are passed via environment variables:
|
||||
|
||||
[](https://microbadger.com/images/lsiobase/rdesktop "Get your own image badge on microbadger.com")
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| LC_ALL | Set the Language for the container to run as IE `fr_FR.UTF-8` `ar_AE.UTF-8` |
|
||||
| NO_DECOR | If set the application will run without window borders. (Decor can be enabled and disabled with Ctrl+Shift+d) |
|
||||
| NO_FULL | Do not autmatically fullscreen applications when using openbox. |
|
||||
|
||||
[](https://github.com/linuxserver/docker-baseimage-rdesktop/blob/master/Dockerfile)
|
||||
## Language Support - Internationalization
|
||||
|
||||
A custom base image built with [Ubuntu linux](https://www.ubuntu.com/) and [xrdp](http://xrdp.org/)
|
||||
The environment variable `LC_ALL` can be used to start this image in a different language than English simply pass for example to launch the Desktop session in French `LC_ALL=fr_FR.UTF-8`. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup.
|
||||
|
||||
To install cjk fonts on startup as an example pass the environment variables(Debian):
|
||||
|
||||
```
|
||||
-e DOCKER_MODS=linuxserver/mods:universal-package-install
|
||||
-e INSTALL_PACKAGES=fonts-noto-cjk
|
||||
-e LC_ALL=zh_CN.UTF-8
|
||||
```
|
||||
|
||||
# Available Distros
|
||||
|
||||
All base images are built for x86_64 and aarch64 platforms.
|
||||
|
||||
| Distro | Current Tag |
|
||||
| :----: | --- |
|
||||
| Ubuntu | ubuntunoble |
|
||||
|
||||
# PRoot Apps
|
||||
|
||||
All images include [proot-apps](https://github.com/linuxserver/proot-apps) which allow portable applications to be installed to persistent storage in the user's `$HOME` directory. These applications and their settings will persist upgrades of the base container and can be mounted into different flavors of rdesktop containers. IE if you are running an Alpine based container you will be able to use the same `/config` directory mounted into an Ubuntu based container and retain the same applications and settings as long as they were installed with `proot-apps install`.
|
||||
|
||||
A list of linuxserver.io supported applications is located [HERE](https://github.com/linuxserver/proot-apps?tab=readme-ov-file#supported-apps).
|
||||
|
||||
# I like to read documentation
|
||||
|
||||
## Building images
|
||||
|
||||
### Application containers
|
||||
|
||||
Included in these base images is a simple [Openbox DE](http://openbox.org/) and the accompanying logic needed to launch a single application. Lets look at the bare minimum needed to create an application container starting with a Dockerfile:
|
||||
|
||||
```
|
||||
FROM ghcr.io/linuxserver/baseimage-rdesktop:alpine320
|
||||
RUN apk add --no-cache firefox
|
||||
COPY /root /
|
||||
```
|
||||
|
||||
And we can define the application to start using:
|
||||
|
||||
```
|
||||
mkdir -p root/defaults
|
||||
echo "firefox" > root/defaults/autostart
|
||||
```
|
||||
|
||||
Resulting in a folder that looks like this:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── autostart
|
||||
```
|
||||
|
||||
Now build and test:
|
||||
|
||||
```
|
||||
docker build -t firefox .
|
||||
docker run --rm -it -p 3389:3389 firefox bash
|
||||
```
|
||||
|
||||
On rdp port 3389 you will be presented with a fullscreen firefox window.
|
||||
|
||||
This similar setup can be used to embed any Linux Desktop application in an rdp accesible container.
|
||||
|
||||
**If building images it is important to note that many application will not work inside of Docker without `--security-opt seccomp=unconfined`, they may have launch flags to not use syscalls blocked by Docker like with chromium based applications and `--no-sandbox`. In general do not expect every application will simply work like a native Linux installation without some modifications**
|
||||
|
||||
#### In container application launching
|
||||
|
||||
Also included in the init logic is the ability to define application launchers. As the user has the ability to close the application or if they want to open multiple instances of it this can be useful. Here is an example of a menu definition file for Firefox:
|
||||
|
||||
```
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openbox_menu xmlns="http://openbox.org/3.4/menu">
|
||||
<menu id="root-menu" label="MENU">
|
||||
<item label="xterm" icon="/usr/share/pixmaps/xterm-color_48x48.xpm"><action name="Execute"><command>/usr/bin/xterm</command></action></item>
|
||||
<item label="FireFox" icon="/usr/share/icons/hicolor/48x48/apps/firefox.png"><action name="Execute"><command>/usr/bin/firefox</command></action></item>
|
||||
</menu>
|
||||
</openbox_menu>
|
||||
```
|
||||
|
||||
Simply create this file and add it to your defaults folder as `menu.xml`:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── autostart
|
||||
└── menu.xml
|
||||
```
|
||||
|
||||
This allows users to right click the desktop background to launch the application.
|
||||
|
||||
|
||||
### Full Desktop environments
|
||||
|
||||
When building an application container we are leveraging the Openbox DE to handle window management, but it is also possible to completely replace the DE that is launched on container init using the `startwm.sh` script, located again in defaults:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── startwm.sh
|
||||
```
|
||||
|
||||
If included in the build logic it will be launched in place of Openbox. Examples for this kind of configuration can be found in our [rdesktop repository](https://github.com/linuxserver/docker-rdesktop)
|
||||
|
||||
## Open Source GPU Acceleration
|
||||
|
||||
For accelerated apps or games, render devices can be mounted into the container and leveraged by applications using:
|
||||
|
||||
`--device /dev/dri:/dev/dri`
|
||||
|
||||
This feature only supports **Open Source** GPU drivers:
|
||||
|
||||
| Driver | Description |
|
||||
| :----: | --- |
|
||||
| Intel | i965 and i915 drivers for Intel iGPU chipsets |
|
||||
| AMD | AMDGPU, Radeon, and ATI drivers for AMD dedicated or APU chipsets |
|
||||
| NVIDIA | nouveau2 drivers only, closed source NVIDIA drivers lack DRI3 support |
|
||||
|
||||
## Nvidia GPU Support
|
||||
|
||||
**Nvidia is not compatible with Alpine based images**
|
||||
|
||||
Nvidia support is available by leveraging Zink for OpenGL support. This can be enabled with the following run flags:
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| --gpus all | This can be filtered down but for most setups this will pass the one Nvidia GPU on the system |
|
||||
| --runtime nvidia | Specify the Nvidia runtime which mounts drivers and tools in from the host |
|
||||
|
||||
The compose syntax is slightly different for this as you will need to set nvidia as the default runtime:
|
||||
|
||||
```
|
||||
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
|
||||
sudo service docker restart
|
||||
```
|
||||
|
||||
And to assign the GPU in compose:
|
||||
|
||||
```
|
||||
services:
|
||||
myimage:
|
||||
image: myname/myimage:mytag
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [compute,video,graphics,utility]
|
||||
```
|
||||
|
||||
The following line is only in this repo for loop testing:
|
||||
|
||||
- { date: "01.01.50:", desc: "I am the release message for this internal repo." }
|
||||
|
||||
@ -4,9 +4,8 @@
|
||||
project_name: docker-baseimage-rdesktop
|
||||
external_type: os
|
||||
release_type: stable
|
||||
release_tag: focal
|
||||
release_tag: ubuntunoble
|
||||
ls_branch: master
|
||||
use_qemu: true
|
||||
repo_vars:
|
||||
- BUILD_VERSION_ARG = 'XRDP_VERSION'
|
||||
- LS_USER = 'linuxserver'
|
||||
@ -21,7 +20,7 @@ repo_vars:
|
||||
- CI_WEB='false'
|
||||
- CI_PORT='3389'
|
||||
- CI_SSL='false'
|
||||
- CI_DELAY='30'
|
||||
- CI_DOCKER_LOGS_TIMEOUT='120'
|
||||
- CI_DOCKERENV='TZ=US/Pacific'
|
||||
- CI_AUTH='user:password'
|
||||
- CI_AUTH=''
|
||||
- CI_WEBPATH=''
|
||||
|
||||
639
package_versions.txt
Executable file
639
package_versions.txt
Executable file
@ -0,0 +1,639 @@
|
||||
NAME VERSION TYPE
|
||||
adduser 3.137ubuntu1 deb
|
||||
apt 2.8.3 deb
|
||||
apt-transport-https 2.8.3 deb
|
||||
apt-utils 2.8.3 deb
|
||||
base-files 13ubuntu10.4 deb
|
||||
base-passwd 3.6.3build1 deb
|
||||
bash 5.2.21-2ubuntu4 deb
|
||||
blinker 1.7.0 python
|
||||
bsdextrautils 2.39.3-9ubuntu6.4 deb
|
||||
bsdutils 1:2.39.3-9ubuntu6.4 deb
|
||||
ca-certificates 20240203 deb
|
||||
catatonit 0.1.7-1 deb
|
||||
coreutils 9.4-3ubuntu6.1 deb
|
||||
cpp 4:13.2.0-7ubuntu1 deb
|
||||
cpp-13 13.3.0-6ubuntu2~24.04 deb
|
||||
cpp-13-x86-64-linux-gnu 13.3.0-6ubuntu2~24.04 deb
|
||||
cpp-x86-64-linux-gnu 4:13.2.0-7ubuntu1 deb
|
||||
cron 3.0pl1-184ubuntu2 deb
|
||||
cron-daemon-common 3.0pl1-184ubuntu2 deb
|
||||
cryptography 41.0.7 python (+1 duplicate)
|
||||
curl 8.5.0-2ubuntu10.6 deb
|
||||
dash 0.5.12-6ubuntu5 deb
|
||||
dbus 1.14.10-4ubuntu4.1 deb
|
||||
dbus-bin 1.14.10-4ubuntu4.1 deb
|
||||
dbus-daemon 1.14.10-4ubuntu4.1 deb
|
||||
dbus-python 1.3.2 python
|
||||
dbus-session-bus-common 1.14.10-4ubuntu4.1 deb
|
||||
dbus-system-bus-common 1.14.10-4ubuntu4.1 deb
|
||||
dbus-x11 1.14.10-4ubuntu4.1 deb
|
||||
dconf-gsettings-backend 0.40.0-4ubuntu0.1 deb
|
||||
dconf-service 0.40.0-4ubuntu0.1 deb
|
||||
debconf 1.5.86ubuntu1 deb
|
||||
debianutils 5.17build1 deb
|
||||
diffutils 1:3.10-1build1 deb
|
||||
dirmngr 2.4.4-2ubuntu17.4 deb
|
||||
distro 1.9.0 python
|
||||
distro-info-data 0.60ubuntu0.5 deb
|
||||
docker-ce-cli 5:29.2.1-1~ubuntu.24.04~noble deb
|
||||
docker-compose-plugin 5.0.2-1~ubuntu.24.04~noble deb
|
||||
dpkg 1.22.6ubuntu6.5 deb
|
||||
e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
findutils 4.9.0-5build1 deb
|
||||
fontconfig 2.15.0-1.1ubuntu2 deb
|
||||
fontconfig-config 2.15.0-1.1ubuntu2 deb
|
||||
fonts-noto-color-emoji 2.047-0ubuntu0.24.04.1 deb
|
||||
fonts-noto-core 20201225-2 deb
|
||||
fonts-noto-mono 20201225-2 deb
|
||||
fonts-urw-base35 20200910-8 deb
|
||||
gawk 1:5.2.1-2build3 deb
|
||||
gcc-13-base 13.3.0-6ubuntu2~24.04 deb
|
||||
gcc-14-base 14.2.0-4ubuntu2~24.04 deb
|
||||
gir1.2-girepository-2.0 1.80.1-1 deb
|
||||
gir1.2-glib-2.0 2.80.0-6ubuntu3.8 deb
|
||||
gir1.2-packagekitglib-1.0 1.2.8-2ubuntu1.4 deb
|
||||
github.com/AlecAivazis/survey/v2 v2.3.7 go-module
|
||||
github.com/DefangLabs/secret-detector v0.0.0-20250403165618-22662109213e go-module
|
||||
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d go-module
|
||||
github.com/beorn7/perks v1.0.1 go-module
|
||||
github.com/buger/goterm v1.0.4 go-module
|
||||
github.com/cenkalti/backoff/v5 v5.0.3 go-module
|
||||
github.com/cespare/xxhash/v2 v2.3.0 go-module
|
||||
github.com/compose-spec/compose-go/v2 v2.10.1 go-module
|
||||
github.com/containerd/console v1.0.5 go-module
|
||||
github.com/containerd/containerd/api v1.10.0 go-module
|
||||
github.com/containerd/containerd/v2 v2.2.1 go-module
|
||||
github.com/containerd/continuity v0.4.5 go-module
|
||||
github.com/containerd/errdefs v1.0.0 go-module
|
||||
github.com/containerd/errdefs/pkg v0.3.0 go-module
|
||||
github.com/containerd/log v0.1.0 go-module
|
||||
github.com/containerd/platforms v1.0.0-rc.2 go-module
|
||||
github.com/containerd/ttrpc v1.2.7 go-module
|
||||
github.com/containerd/typeurl/v2 v2.2.3 go-module
|
||||
github.com/davecgh/go-spew v1.1.1 go-module
|
||||
github.com/distribution/reference v0.6.0 go-module
|
||||
github.com/docker/buildx v0.30.1 go-module
|
||||
github.com/docker/cli v28.5.2+incompatible go-module
|
||||
github.com/docker/cli-docs-tool v0.11.0 go-module
|
||||
github.com/docker/cli/cmd/docker UNKNOWN go-module
|
||||
github.com/docker/compose/v5 v0.0.0-20260120125753-c428a77111d5 go-module
|
||||
github.com/docker/distribution v2.8.3+incompatible go-module
|
||||
github.com/docker/docker v28.5.2+incompatible go-module
|
||||
github.com/docker/docker-credential-helpers v0.9.3 go-module
|
||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module
|
||||
github.com/docker/go-connections v0.6.0 go-module
|
||||
github.com/docker/go-metrics v0.0.1 go-module
|
||||
github.com/docker/go-units v0.5.0 go-module
|
||||
github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 go-module
|
||||
github.com/felixge/httpsnoop v1.0.4 go-module
|
||||
github.com/fvbommel/sortorder v1.1.0 go-module
|
||||
github.com/go-logr/logr v1.4.3 go-module
|
||||
github.com/go-logr/stdr v1.2.2 go-module
|
||||
github.com/go-viper/mapstructure/v2 v2.5.0 go-module
|
||||
github.com/gofrs/flock v0.13.0 go-module
|
||||
github.com/gogo/protobuf v1.3.2 go-module
|
||||
github.com/golang-jwt/jwt/v5 v5.3.0 go-module
|
||||
github.com/golang/protobuf v1.5.4 go-module
|
||||
github.com/google/go-cmp v0.7.0 go-module
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module
|
||||
github.com/google/uuid v1.6.0 go-module
|
||||
github.com/gorilla/mux v1.8.1 go-module
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 go-module
|
||||
github.com/hashicorp/errwrap v1.1.0 go-module
|
||||
github.com/hashicorp/go-multierror v1.1.1 go-module
|
||||
github.com/hashicorp/go-version v1.8.0 go-module
|
||||
github.com/in-toto/in-toto-golang v0.9.0 go-module
|
||||
github.com/inhies/go-bytesize v0.0.0-20220417184213-4913239db9cf go-module
|
||||
github.com/jonboulle/clockwork v0.5.0 go-module
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 go-module
|
||||
github.com/klauspost/compress v1.18.2 go-module
|
||||
github.com/mattn/go-colorable v0.1.14 go-module
|
||||
github.com/mattn/go-isatty v0.0.20 go-module
|
||||
github.com/mattn/go-runewidth v0.0.16 go-module
|
||||
github.com/mattn/go-shellwords v1.0.12 go-module
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module
|
||||
github.com/mitchellh/hashstructure/v2 v2.0.2 go-module
|
||||
github.com/moby/buildkit v0.26.3 go-module
|
||||
github.com/moby/docker-image-spec v1.3.1 go-module
|
||||
github.com/moby/go-archive v0.1.0 go-module
|
||||
github.com/moby/locker v1.0.1 go-module
|
||||
github.com/moby/patternmatcher v0.6.0 go-module
|
||||
github.com/moby/sys/atomicwriter v0.1.0 go-module
|
||||
github.com/moby/sys/capability v0.4.0 go-module
|
||||
github.com/moby/sys/sequential v0.6.0 go-module
|
||||
github.com/moby/sys/signal v0.7.1 go-module
|
||||
github.com/moby/sys/symlink v0.3.0 go-module
|
||||
github.com/moby/sys/user v0.4.0 go-module
|
||||
github.com/moby/sys/userns v0.1.0 go-module
|
||||
github.com/moby/term v0.5.2 go-module
|
||||
github.com/morikuni/aec v1.1.0 go-module
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module
|
||||
github.com/opencontainers/go-digest v1.0.0 go-module
|
||||
github.com/opencontainers/image-spec v1.1.1 go-module
|
||||
github.com/pelletier/go-toml v1.9.5 go-module
|
||||
github.com/pkg/errors v0.9.1 go-module
|
||||
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module
|
||||
github.com/pmezard/go-difflib v1.0.0 go-module
|
||||
github.com/prometheus/client_golang v1.23.2 go-module
|
||||
github.com/prometheus/client_model v0.6.2 go-module
|
||||
github.com/prometheus/common v0.66.1 go-module
|
||||
github.com/prometheus/procfs v0.16.1 go-module
|
||||
github.com/rivo/uniseg v0.2.0 go-module
|
||||
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 go-module
|
||||
github.com/secure-systems-lab/go-securesystemslib v0.9.1 go-module
|
||||
github.com/shibumi/go-pathspec v1.3.0 go-module
|
||||
github.com/sirupsen/logrus v1.9.4 go-module
|
||||
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 go-module
|
||||
github.com/spf13/cobra v1.10.2 go-module
|
||||
github.com/spf13/pflag v1.0.10 go-module
|
||||
github.com/stretchr/testify v1.11.1 go-module
|
||||
github.com/theupdateframework/notary v0.7.0 go-module
|
||||
github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 go-module
|
||||
github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module
|
||||
github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f go-module
|
||||
github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 go-module
|
||||
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module
|
||||
github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab go-module
|
||||
github.com/xhit/go-str2duration/v2 v2.1.0 go-module
|
||||
glib-networking 2.80.0-1build1 deb
|
||||
glib-networking-common 2.80.0-1build1 deb
|
||||
glib-networking-services 2.80.0-1build1 deb
|
||||
gnupg 2.4.4-2ubuntu17.4 deb
|
||||
gnupg-l10n 2.4.4-2ubuntu17.4 deb
|
||||
gnupg-utils 2.4.4-2ubuntu17.4 deb
|
||||
gnupg2 2.4.4-2ubuntu17.4 deb
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 go-module
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 go-module
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 go-module
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 go-module
|
||||
go.opentelemetry.io/otel v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/metric v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/sdk v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/sdk/metric v1.38.0 go-module
|
||||
go.opentelemetry.io/otel/trace v1.38.0 go-module
|
||||
go.opentelemetry.io/proto/otlp v1.7.1 go-module
|
||||
go.uber.org/mock v0.6.0 go-module
|
||||
go.yaml.in/yaml/v2 v2.4.2 go-module
|
||||
go.yaml.in/yaml/v4 v4.0.0-rc.3 go-module
|
||||
golang.org/x/crypto v0.45.0 go-module
|
||||
golang.org/x/net v0.47.0 go-module
|
||||
golang.org/x/sync v0.19.0 go-module
|
||||
golang.org/x/sys v0.40.0 go-module
|
||||
golang.org/x/term v0.37.0 go-module
|
||||
golang.org/x/text v0.31.0 go-module
|
||||
golang.org/x/time v0.14.0 go-module
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda go-module
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda go-module
|
||||
google.golang.org/grpc v1.78.0 go-module
|
||||
google.golang.org/protobuf v1.36.10 go-module
|
||||
gopkg.in/ini.v1 v1.67.0 go-module
|
||||
gopkg.in/yaml.v3 v3.0.1 go-module
|
||||
gpg 2.4.4-2ubuntu17.4 deb
|
||||
gpg-agent 2.4.4-2ubuntu17.4 deb
|
||||
gpg-wks-client 2.4.4-2ubuntu17.4 deb
|
||||
gpgconf 2.4.4-2ubuntu17.4 deb
|
||||
gpgsm 2.4.4-2ubuntu17.4 deb
|
||||
gpgv 2.4.4-2ubuntu17.4 deb
|
||||
grep 3.11-4build1 deb
|
||||
groff-base 1.23.0-3build2 deb
|
||||
gsettings-desktop-schemas 46.1-0ubuntu1 deb
|
||||
gzip 1.12-1ubuntu3.1 deb
|
||||
hostname 3.23+nmu2ubuntu2 deb
|
||||
httplib2 0.20.4 python
|
||||
init-system-helpers 1.66ubuntu1 deb
|
||||
iso-codes 4.16.0-1 deb
|
||||
jq 1.7.1 binary
|
||||
jq 1.7.1-3ubuntu0.24.04.1 deb
|
||||
keyboard-configuration 1.226ubuntu1 deb
|
||||
keyboxd 2.4.4-2ubuntu17.4 deb
|
||||
krb5-locales 1.20.1-6ubuntu2.6 deb
|
||||
launchpadlib 1.11.0 python
|
||||
lazr-restfulclient 0.14.6 python
|
||||
lazr-uri 1.0.6 python
|
||||
libacl1 2.3.2-1build1.1 deb
|
||||
libaom3 3.8.2-2ubuntu0.1 deb
|
||||
libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.5 deb
|
||||
libappstream5 1.0.2-1build6 deb
|
||||
libapt-pkg6.0t64 2.8.3 deb
|
||||
libargon2-1 0~20190702+dfsg-4build1 deb
|
||||
libasound2-data 1.2.11-1ubuntu0.1 deb
|
||||
libasound2-plugins 1.2.7.1-1ubuntu5 deb
|
||||
libasound2t64 1.2.11-1ubuntu0.1 deb
|
||||
libassuan0 2.5.6-1build1 deb
|
||||
libasyncns0 0.8-6build4 deb
|
||||
libattr1 1:2.5.2-1build1.1 deb
|
||||
libaudit-common 1:3.1.2-2.1build1.1 deb
|
||||
libaudit1 1:3.1.2-2.1build1.1 deb
|
||||
libavahi-client3 0.8-13ubuntu6.1 deb
|
||||
libavahi-common-data 0.8-13ubuntu6.1 deb
|
||||
libavahi-common3 0.8-13ubuntu6.1 deb
|
||||
libavcodec60 7:6.1.1-3ubuntu5 deb
|
||||
libavutil58 7:6.1.1-3ubuntu5 deb
|
||||
libblkid1 2.39.3-9ubuntu6.4 deb
|
||||
libbrotli1 1.1.0-2build2 deb
|
||||
libbsd0 0.12.1-1build1.1 deb
|
||||
libbz2-1.0 1.0.8-5.1build0.1 deb
|
||||
libc-bin 2.39-0ubuntu8.7 deb
|
||||
libc6 2.39-0ubuntu8.7 deb
|
||||
libcairo-gobject2 1.18.0-3build1 deb
|
||||
libcairo2 1.18.0-3build1 deb
|
||||
libcap-ng0 0.8.4-2build2 deb
|
||||
libcap2 1:2.66-5ubuntu2.2 deb
|
||||
libcap2-bin 1:2.66-5ubuntu2.2 deb
|
||||
libcbor0.10 0.10.2-1.2ubuntu2 deb
|
||||
libcodec2-1.2 1.2.0-2build1 deb
|
||||
libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libcrypt1 1:4.4.36-4build1 deb
|
||||
libcryptsetup12 2:2.7.0-1ubuntu4.2 deb
|
||||
libcups2t64 2.4.7-1.2ubuntu7.9 deb
|
||||
libcurl3t64-gnutls 8.5.0-2ubuntu10.6 deb
|
||||
libcurl4t64 8.5.0-2ubuntu10.6 deb
|
||||
libdatrie1 0.2.13-3build1 deb
|
||||
libdav1d7 1.4.1-1build1 deb
|
||||
libdb5.3t64 5.3.28+dfsg2-7 deb
|
||||
libdbus-1-3 1.14.10-4ubuntu4.1 deb
|
||||
libdconf1 0.40.0-4ubuntu0.1 deb
|
||||
libde265-0 1.0.15-1build3 deb
|
||||
libdebconfclient0 0.271ubuntu3 deb
|
||||
libdeflate0 1.19-1build1.1 deb
|
||||
libdevmapper1.02.1 2:1.02.185-3ubuntu3.2 deb
|
||||
libdrm-amdgpu1 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libdrm-common 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libdrm-intel1 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libdrm-nouveau2 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libdrm-radeon1 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libdrm2 2.4.125-1ubuntu0.1~24.04.1 deb
|
||||
libduktape207 2.7.0+tests-0ubuntu3 deb
|
||||
libdw1t64 0.190-1.1ubuntu0.1 deb
|
||||
libedit2 3.1-20230828-1build1 deb
|
||||
libegl-mesa0 25.2.8-0ubuntu0.24.04.1 deb
|
||||
libegl1 1.7.0-1build1 deb
|
||||
libelf1t64 0.190-1.1ubuntu0.1 deb
|
||||
libepoxy0 1.5.10-1build1 deb
|
||||
libexpat1 2.6.1-2ubuntu0.3 deb
|
||||
libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libfdisk1 2.39.3-9ubuntu6.4 deb
|
||||
libffi8 3.4.6-1build1 deb
|
||||
libfftw3-single3 3.3.10-1ubuntu3 deb
|
||||
libfido2-1 1.14.0-1build3 deb
|
||||
libflac12t64 1.4.3+ds-2.1ubuntu2 deb
|
||||
libfontconfig1 2.15.0-1.1ubuntu2 deb
|
||||
libfontenc1 1:1.1.8-1build1 deb
|
||||
libfreetype6 2.13.2+dfsg-1build3 deb
|
||||
libfribidi0 1.0.13-3build1 deb
|
||||
libfuse2t64 2.9.9-8.1build1 deb
|
||||
libgbm1 25.2.8-0ubuntu0.24.04.1 deb
|
||||
libgcc-s1 14.2.0-4ubuntu2~24.04 deb
|
||||
libgcrypt20 1.10.3-2build1 deb
|
||||
libgdbm6t64 1.23-5.1build1 deb
|
||||
libgdk-pixbuf-2.0-0 2.42.10+dfsg-3ubuntu3.2 deb
|
||||
libgdk-pixbuf2.0-common 2.42.10+dfsg-3ubuntu3.2 deb
|
||||
libgif7 5.2.2-1ubuntu1 deb
|
||||
libgirepository-1.0-1 1.80.1-1 deb
|
||||
libgl1 1.7.0-1build1 deb
|
||||
libgl1-mesa-dri 25.2.8-0ubuntu0.24.04.1 deb
|
||||
libglib2.0-0t64 2.80.0-6ubuntu3.8 deb
|
||||
libglib2.0-bin 2.80.0-6ubuntu3.8 deb
|
||||
libglib2.0-data 2.80.0-6ubuntu3.8 deb
|
||||
libglvnd0 1.7.0-1build1 deb
|
||||
libglx-mesa0 25.2.8-0ubuntu0.24.04.1 deb
|
||||
libglx0 1.7.0-1build1 deb
|
||||
libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb
|
||||
libgnutls30t64 3.8.3-1.1ubuntu3.4 deb
|
||||
libgomp1 14.2.0-4ubuntu2~24.04 deb
|
||||
libgpg-error0 1.47-3build2.1 deb
|
||||
libgraphite2-3 1.3.14-2build1 deb
|
||||
libgs-common 10.02.1~dfsg1-0ubuntu7.8 deb
|
||||
libgs10 10.02.1~dfsg1-0ubuntu7.8 deb
|
||||
libgs10-common 10.02.1~dfsg1-0ubuntu7.8 deb
|
||||
libgsm1 1.0.22-1build1 deb
|
||||
libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb
|
||||
libgstreamer-plugins-base1.0-0 1.24.2-1ubuntu0.3 deb
|
||||
libgstreamer1.0-0 1.24.2-1ubuntu0.1 deb
|
||||
libharfbuzz0b 8.3.0-2build2 deb
|
||||
libheif-plugin-aomdec 1.17.6-1ubuntu4.2 deb
|
||||
libheif-plugin-libde265 1.17.6-1ubuntu4.2 deb
|
||||
libheif1 1.17.6-1ubuntu4.2 deb
|
||||
libhogweed6t64 3.9.1-2.2build1.1 deb
|
||||
libhwy1t64 1.0.7-8.1build1 deb
|
||||
libice6 2:1.0.10-1build3 deb
|
||||
libicu74 74.2-1ubuntu3.1 deb
|
||||
libid3tag0 0.15.1b-14build1 deb
|
||||
libidn12 1.42-1build1 deb
|
||||
libidn2-0 2.3.7-2build1.1 deb
|
||||
libijs-0.35 0.35-15.1build1 deb
|
||||
libimlib2t64 1.12.1-1.1build2 deb
|
||||
libisl23 0.26-3build1.1 deb
|
||||
libjack-jackd2-0 1.9.21~dfsg-3ubuntu3 deb
|
||||
libjbig0 2.1-6.1ubuntu2 deb
|
||||
libjbig2dec0 0.20-1build3 deb
|
||||
libjpeg-turbo8 2.1.5-2ubuntu2 deb
|
||||
libjpeg8 8c-2ubuntu11 deb
|
||||
libjq1 1.7.1-3ubuntu0.24.04.1 deb
|
||||
libjson-c5 0.17-1build1 deb
|
||||
libjson-glib-1.0-0 1.8.0-2build2 deb
|
||||
libjson-glib-1.0-common 1.8.0-2build2 deb
|
||||
libjxl0.7 0.7.0-10.2ubuntu6.1 deb
|
||||
libk5crypto3 1.20.1-6ubuntu2.6 deb
|
||||
libkeyutils1 1.6.3-3build1 deb
|
||||
libkmod2 31+20240202-2ubuntu7.1 deb
|
||||
libkrb5-3 1.20.1-6ubuntu2.6 deb
|
||||
libkrb5support0 1.20.1-6ubuntu2.6 deb
|
||||
libksba8 1.6.6-1build1 deb
|
||||
liblcms2-2 2.14-2build1 deb
|
||||
libldap-common 2.6.10+dfsg-0ubuntu0.24.04.1 deb
|
||||
libldap2 2.6.10+dfsg-0ubuntu0.24.04.1 deb
|
||||
liblerc4 4.0.0+ds-4ubuntu2 deb
|
||||
libllvm20 1:20.1.2-0ubuntu1~24.04.2 deb
|
||||
liblocale-gettext-perl 1.07-6ubuntu5 deb
|
||||
libltdl7 2.4.7-7build1 deb
|
||||
liblz4-1 1.9.4-1build1.1 deb
|
||||
liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb
|
||||
libmd0 1.1.0-2build1.1 deb
|
||||
libmount1 2.39.3-9ubuntu6.4 deb
|
||||
libmp3lame0 3.100-6build1 deb
|
||||
libmpc3 1.3.1-1build1.1 deb
|
||||
libmpfr6 4.2.1-1build1.1 deb
|
||||
libmpg123-0t64 1.32.5-1ubuntu1.1 deb
|
||||
libncursesw6 6.4+20240113-1ubuntu2 deb
|
||||
libnettle8t64 3.9.1-2.2build1.1 deb
|
||||
libnghttp2-14 1.59.0-1ubuntu0.2 deb
|
||||
libnpth0t64 1.6-3.1build1 deb
|
||||
libnuma1 2.0.18-1ubuntu0.24.04.1 deb
|
||||
libobrender32v5 3.6.1-12build5 deb
|
||||
libobt2v5 3.6.1-12build5 deb
|
||||
libogg0 1.3.5-3build1 deb
|
||||
libonig5 6.9.9-1build1 deb
|
||||
libopenjp2-7 2.5.0-2ubuntu0.4 deb
|
||||
libopus0 1.4-1build1 deb
|
||||
liborc-0.4-0t64 1:0.4.38-1ubuntu0.1 deb
|
||||
libp11-kit0 0.25.3-4ubuntu2.1 deb
|
||||
libpackagekit-glib2-18 1.2.8-2ubuntu1.4 deb
|
||||
libpam-modules 1.5.3-5ubuntu5.5 deb
|
||||
libpam-modules-bin 1.5.3-5ubuntu5.5 deb
|
||||
libpam-runtime 1.5.3-5ubuntu5.5 deb
|
||||
libpam-systemd 255.4-1ubuntu8.12 deb
|
||||
libpam0g 1.5.3-5ubuntu5.5 deb
|
||||
libpango-1.0-0 1.52.1+ds-1build1 deb
|
||||
libpangocairo-1.0-0 1.52.1+ds-1build1 deb
|
||||
libpangoft2-1.0-0 1.52.1+ds-1build1 deb
|
||||
libpangoxft-1.0-0 1.52.1+ds-1build1 deb
|
||||
libpaper1 1.1.29build1 deb
|
||||
libpciaccess0 0.17-3ubuntu0.24.04.2 deb
|
||||
libpcre2-8-0 10.42-4ubuntu2.1 deb
|
||||
libpipeline1 1.5.7-2 deb
|
||||
libpixman-1-0 0.42.2-1build1 deb
|
||||
libpng16-16t64 1.6.43-5ubuntu0.5 deb
|
||||
libpolkit-agent-1-0 124-2ubuntu1.24.04.2 deb
|
||||
libpolkit-gobject-1-0 124-2ubuntu1.24.04.2 deb
|
||||
libproc2-0 2:4.0.4-4ubuntu3.2 deb
|
||||
libproxy1v5 0.5.4-4build1 deb
|
||||
libpsl5t64 0.21.2-1.1build1 deb
|
||||
libpthread-stubs0-dev 0.4-1build3 deb
|
||||
libpulse0 1:16.1+dfsg1-2ubuntu10.1 deb
|
||||
libpython3-stdlib 3.12.3-0ubuntu2.1 deb
|
||||
libpython3.12-minimal 3.12.3-1ubuntu0.11 deb
|
||||
libpython3.12-stdlib 3.12.3-1ubuntu0.11 deb
|
||||
librav1e0 0.7.1-2 deb
|
||||
libreadline8t64 8.2-4build1 deb
|
||||
librsvg2-2 2.58.0+dfsg-1build1 deb
|
||||
librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb
|
||||
libsamplerate0 0.2.2-4build1 deb
|
||||
libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 deb
|
||||
libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 deb
|
||||
libsasl2-modules-db 2.1.28+dfsg1-5ubuntu3.1 deb
|
||||
libseccomp2 2.5.5-1ubuntu3.1 deb
|
||||
libselinux1 3.5-2ubuntu2.1 deb
|
||||
libsemanage-common 3.5-1build5 deb
|
||||
libsemanage2 3.5-1build5 deb
|
||||
libsensors-config 1:3.6.0-9build1 deb
|
||||
libsensors5 1:3.6.0-9build1 deb
|
||||
libsepol2 3.5-2build1 deb
|
||||
libsharpyuv0 1.3.2-0.4build3 deb
|
||||
libshine3 3.1.1-2build1 deb
|
||||
libsigsegv2 2.14-1ubuntu2 deb
|
||||
libsm6 2:1.2.3-1build3 deb
|
||||
libsmartcols1 2.39.3-9ubuntu6.4 deb
|
||||
libsnapd-glib-2-1 1.64-0ubuntu5 deb
|
||||
libsnappy1v5 1.1.10-1build1 deb
|
||||
libsndfile1 1.2.2-1ubuntu5.24.04.1 deb
|
||||
libsoup-3.0-0 3.4.4-5ubuntu0.7 deb
|
||||
libsoup-3.0-common 3.4.4-5ubuntu0.7 deb
|
||||
libsoxr0 0.1.3-4build3 deb
|
||||
libspectre1 0.2.12-1build2 deb
|
||||
libspeex1 1.2.1-2ubuntu2.24.04.1 deb
|
||||
libspeexdsp1 1.2.1-1ubuntu3 deb
|
||||
libsqlite3-0 3.45.1-1ubuntu2.5 deb
|
||||
libss2 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
libssh-4 0.10.6-2ubuntu0.2 deb
|
||||
libssl3t64 3.0.13-0ubuntu3.7 deb
|
||||
libstartup-notification0 0.12-6build3 deb
|
||||
libstdc++6 14.2.0-4ubuntu2~24.04 deb
|
||||
libstemmer0d 2.2.0-4build1 deb
|
||||
libsvtav1enc1d1 1.7.0+dfsg-2build1 deb
|
||||
libswresample4 7:6.1.1-3ubuntu5 deb
|
||||
libsystemd-shared 255.4-1ubuntu8.12 deb
|
||||
libsystemd0 255.4-1ubuntu8.12 deb
|
||||
libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb
|
||||
libtdb1 1.4.10-1build1 deb
|
||||
libthai-data 0.1.29-2build1 deb
|
||||
libthai0 0.1.29-2build1 deb
|
||||
libtheora0 1.1.1+dfsg.1-16.1build3 deb
|
||||
libtiff6 4.5.1+git230720-4ubuntu2.4 deb
|
||||
libtinfo6 6.4+20240113-1ubuntu2 deb
|
||||
libtwolame0 0.4.0-2build3 deb
|
||||
libuchardet0 0.0.8-1build1 deb
|
||||
libudev1 255.4-1ubuntu8.12 deb
|
||||
libunistring5 1.1-2build1.1 deb
|
||||
libunwind8 1.6.2-3build1.1 deb
|
||||
libutempter0 1.2.1-3build1 deb
|
||||
libuuid1 2.39.3-9ubuntu6.4 deb
|
||||
libva-drm2 2.20.0-2ubuntu0.1 deb
|
||||
libva-x11-2 2.20.0-2ubuntu0.1 deb
|
||||
libva2 2.20.0-2ubuntu0.1 deb
|
||||
libvdpau1 1.5-2build1 deb
|
||||
libvorbis0a 1.3.7-1build3 deb
|
||||
libvorbisenc2 1.3.7-1build3 deb
|
||||
libvpl2 2023.3.0-1build1 deb
|
||||
libvpx9 1.14.0-1ubuntu2.2 deb
|
||||
libvulkan1 1.3.275.0-1build1 deb
|
||||
libwayland-client0 1.22.0-2.1build1 deb
|
||||
libwebp7 1.3.2-0.4build3 deb
|
||||
libwebpdemux2 1.3.2-0.4build3 deb
|
||||
libwebpmux3 1.3.2-0.4build3 deb
|
||||
libwebrtc-audio-processing1 0.3.1-0ubuntu6 deb
|
||||
libwrap0 7.6.q-33 deb
|
||||
libx11-6 2:1.8.7-1build1 deb
|
||||
libx11-data 2:1.8.7-1build1 deb
|
||||
libx11-dev 2:1.8.7-1build1 deb
|
||||
libx11-xcb1 2:1.8.7-1build1 deb
|
||||
libx264-164 2:0.164.3108+git31e19f9-1 deb
|
||||
libx265-199 3.5-2build1 deb
|
||||
libxau-dev 1:1.0.9-1build6 deb
|
||||
libxau6 1:1.0.9-1build6 deb
|
||||
libxaw7 2:1.0.14-1build2 deb
|
||||
libxcb-damage0 1.15-1ubuntu2 deb
|
||||
libxcb-dri2-0 1.15-1ubuntu2 deb
|
||||
libxcb-dri3-0 1.15-1ubuntu2 deb
|
||||
libxcb-glx0 1.15-1ubuntu2 deb
|
||||
libxcb-present0 1.15-1ubuntu2 deb
|
||||
libxcb-randr0 1.15-1ubuntu2 deb
|
||||
libxcb-render0 1.15-1ubuntu2 deb
|
||||
libxcb-shape0 1.15-1ubuntu2 deb
|
||||
libxcb-shm0 1.15-1ubuntu2 deb
|
||||
libxcb-sync1 1.15-1ubuntu2 deb
|
||||
libxcb-util1 0.4.0-1build3 deb
|
||||
libxcb-xfixes0 1.15-1ubuntu2 deb
|
||||
libxcb1 1.15-1ubuntu2 deb
|
||||
libxcb1-dev 1.15-1ubuntu2 deb
|
||||
libxcomposite1 1:0.4.5-1build3 deb
|
||||
libxcursor1 1:1.2.1-1build1 deb
|
||||
libxcvt0 0.1.2-1build1 deb
|
||||
libxdamage1 1:1.1.6-1build1 deb
|
||||
libxdmcp-dev 1:1.1.3-0ubuntu6 deb
|
||||
libxdmcp6 1:1.1.3-0ubuntu6 deb
|
||||
libxext6 2:1.3.4-1build2 deb
|
||||
libxfixes3 1:6.0.0-2build1 deb
|
||||
libxfont2 1:2.0.6-1build1 deb
|
||||
libxft2 2.3.6-1build1 deb
|
||||
libxi6 2:1.8.1-1build1 deb
|
||||
libxinerama1 2:1.1.4-3build1 deb
|
||||
libxkbfile1 1:1.1.0-1build4 deb
|
||||
libxml2 2.9.14+dfsg-1.3ubuntu3.7 deb
|
||||
libxmlb2 0.3.18-1 deb
|
||||
libxmu6 2:1.1.3-3build2 deb
|
||||
libxmuu1 2:1.1.3-3build2 deb
|
||||
libxpm4 1:3.5.17-1build2 deb
|
||||
libxrandr2 2:1.5.2-2build1 deb
|
||||
libxrender1 1:0.9.10-1.1build1 deb
|
||||
libxshmfence1 1.3-1build5 deb
|
||||
libxss1 1:1.2.3-1build3 deb
|
||||
libxt6t64 1:1.2.1-1.2build1 deb
|
||||
libxtst6 2:1.2.3-1.1build1 deb
|
||||
libxv1 2:1.0.11-1.1build1 deb
|
||||
libxvidcore4 2:1.3.7-1build1 deb
|
||||
libxvmc1 2:1.0.12-2build3 deb
|
||||
libxxf86dga1 2:1.1.5-1build1 deb
|
||||
libxxf86vm1 1:1.1.4-1build4 deb
|
||||
libxxhash0 0.8.2-2build1 deb
|
||||
libyaml-0-2 0.2.5-1build1 deb
|
||||
libzstd1 1.5.5+dfsg2-2build1.1 deb
|
||||
libzvbi-common 0.2.42-2 deb
|
||||
libzvbi0t64 0.2.42-2 deb
|
||||
locales 2.39-0ubuntu8.7 deb
|
||||
locales-all 2.39-0ubuntu8.7 deb
|
||||
login 1:4.13+dfsg1-4ubuntu3.2 deb
|
||||
logsave 1.47.0-2.4~exp1ubuntu4.1 deb
|
||||
lsb-release 12.0-2 deb
|
||||
man-db 2.12.0-4build2 deb
|
||||
mawk 1.3.4.20240123-1build1 deb
|
||||
media-types 10.1.0 deb
|
||||
mesa-libgallium 25.2.8-0ubuntu0.24.04.1 deb
|
||||
mesa-va-drivers 25.2.8-0ubuntu0.24.04.1 deb
|
||||
mesa-vulkan-drivers 25.2.8-0ubuntu0.24.04.1 deb
|
||||
mount 2.39.3-9ubuntu6.4 deb
|
||||
ncurses-base 6.4+20240113-1ubuntu2 deb
|
||||
ncurses-bin 6.4+20240113-1ubuntu2 deb
|
||||
netbase 6.4 deb
|
||||
netcat-openbsd 1.226-1ubuntu2 deb
|
||||
oauthlib 3.2.2 python
|
||||
ocl-icd-libopencl1 2.3.2-1build1 deb
|
||||
openbox 3.6.1-12build5 deb
|
||||
openssh-client 1:9.6p1-3ubuntu13.14 deb
|
||||
openssl 3.0.13-0ubuntu3.7 deb
|
||||
packagekit 1.2.8-2ubuntu1.4 deb
|
||||
passwd 1:4.13+dfsg1-4ubuntu3.2 deb
|
||||
perl-base 5.38.2-3.2ubuntu0.2 deb
|
||||
pinentry-curses 1.2.1-3ubuntu5 deb
|
||||
polkitd 124-2ubuntu1.24.04.2 deb
|
||||
poppler-data 0.4.12-1 deb
|
||||
procps 2:4.0.4-4ubuntu3.2 deb
|
||||
publicsuffix 20231001.0357-0.1 deb
|
||||
pulseaudio 1:16.1+dfsg1-2ubuntu10.1 deb
|
||||
pulseaudio-utils 1:16.1+dfsg1-2ubuntu10.1 deb
|
||||
pygobject 3.48.2 python
|
||||
pyjwt 2.7.0 python
|
||||
pyparsing 3.1.1 python
|
||||
python-apt 2.7.7+ubuntu5.2 python
|
||||
python-apt-common 2.7.7ubuntu5.2 deb
|
||||
python3 3.12.3-0ubuntu2.1 deb
|
||||
python3-apt 2.7.7ubuntu5.2 deb
|
||||
python3-blinker 1.7.0-1 deb
|
||||
python3-cffi-backend 1.16.0-2build1 deb
|
||||
python3-cryptography 41.0.7-4ubuntu0.1 deb
|
||||
python3-dbus 1.3.2-5build3 deb
|
||||
python3-distro 1.9.0-1 deb
|
||||
python3-gi 3.48.2-1 deb
|
||||
python3-httplib2 0.20.4-3 deb
|
||||
python3-jwt 2.7.0-1 deb
|
||||
python3-launchpadlib 1.11.0-6 deb
|
||||
python3-lazr.restfulclient 0.14.6-1 deb
|
||||
python3-lazr.uri 1.0.6-3 deb
|
||||
python3-minimal 3.12.3-0ubuntu2.1 deb
|
||||
python3-oauthlib 3.2.2-1 deb
|
||||
python3-pkg-resources 68.1.2-2ubuntu1.2 deb
|
||||
python3-pyparsing 3.1.1-1 deb
|
||||
python3-six 1.16.0-4 deb
|
||||
python3-software-properties 0.99.49.3 deb
|
||||
python3-wadllib 1.3.6-5 deb
|
||||
python3.12 3.12.3-1ubuntu0.11 deb
|
||||
python3.12-minimal 3.12.3-1ubuntu0.11 deb
|
||||
readline-common 8.2-4build1 deb
|
||||
sed 4.9-2build1 deb
|
||||
sensible-utils 0.0.22 deb
|
||||
session-migration 0.3.9build1 deb
|
||||
sgml-base 1.31 deb
|
||||
shared-mime-info 2.4-4 deb
|
||||
six 1.16.0 python
|
||||
software-properties-common 0.99.49.3 deb
|
||||
ssl-cert 1.1.2ubuntu1 deb
|
||||
stdlib go1.24.11 go-module
|
||||
stdlib go1.25.6 go-module
|
||||
sudo 1.9.15p5-3ubuntu5.24.04.1 deb
|
||||
systemd 255.4-1ubuntu8.12 deb
|
||||
systemd-dev 255.4-1ubuntu8.12 deb
|
||||
systemd-sysv 255.4-1ubuntu8.12 deb
|
||||
sysvinit-utils 3.08-6ubuntu3 deb
|
||||
tags.cncf.io/container-device-interface v1.1.0 go-module
|
||||
tar 1.35+dfsg-3build1 deb
|
||||
tzdata 2025b-0ubuntu0.24.04.1 deb
|
||||
ubuntu-keyring 2023.11.28.1 deb
|
||||
ucf 3.0043+nmu1 deb
|
||||
udev 255.4-1ubuntu8.12 deb
|
||||
unminimize 0.2.1 deb
|
||||
util-linux 2.39.3-9ubuntu6.4 deb
|
||||
wadllib 1.3.6 python
|
||||
x11-apps 7.7+11build3 deb
|
||||
x11-common 1:7.7+23ubuntu3 deb
|
||||
x11-session-utils 7.7+6build2 deb
|
||||
x11-utils 7.7+6build2 deb
|
||||
x11-xkb-utils 7.7+8build2 deb
|
||||
x11-xserver-utils 7.7+10build2 deb
|
||||
x11proto-dev 2023.2-1 deb
|
||||
xbitmaps 1.1.1-2.2 deb
|
||||
xfonts-base 1:1.0.5+nmu1 deb
|
||||
xfonts-encodings 1:1.0.5-0ubuntu2 deb
|
||||
xfonts-utils 1:7.7+6build3 deb
|
||||
xkb-data 2.41-2ubuntu1.1 deb
|
||||
xml-core 0.19 deb
|
||||
xorg-sgml-doctools 1:1.11-1.1 deb
|
||||
xorgxrdp 1:0.9.19-1 deb
|
||||
xrdp 0.9.24-4 deb
|
||||
xserver-common 2:21.1.12-1ubuntu1.5 deb
|
||||
xserver-xorg-core 2:21.1.12-1ubuntu1.5 deb
|
||||
xserver-xorg-video-amdgpu 23.0.0-1ubuntu0.24.04.1 deb
|
||||
xserver-xorg-video-ati 1:22.0.0-1build1 deb
|
||||
xserver-xorg-video-intel 2:2.99.917+git20210115-1build1 deb
|
||||
xserver-xorg-video-nouveau 1:1.0.17-2ubuntu0.1 deb
|
||||
xserver-xorg-video-qxl 0.1.6-1build1 deb
|
||||
xserver-xorg-video-radeon 1:22.0.0-1build1 deb
|
||||
xterm 390-1ubuntu3 deb
|
||||
xtrans-dev 1.4.0-1 deb
|
||||
xutils 1:7.7+23ubuntu3 deb
|
||||
zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb
|
||||
183
readme-vars.yml
183
readme-vars.yml
@ -4,30 +4,181 @@
|
||||
project_name: baseimage-rdesktop
|
||||
full_custom_readme: |
|
||||
{% raw -%}
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[forumurl]: https://forum.linuxserver.io
|
||||
[ircurl]: https://www.linuxserver.io/irc/
|
||||
# rdesktop Base Images from LinuxServer
|
||||
|
||||
[][linuxserverurl]
|
||||
The purpose of these images is to provide a full featured rdesktop Linux desktop experience for any Linux application or desktop environment. They ship with passwordless sudo to allow easy package installation, testing, and customization. By default they have no logic to mount out anything but the users home directory, meaning on image updates anything outside of `/config` will be lost.
|
||||
|
||||
## Contact information:-
|
||||
- Support for using our base images in your own projects is provided on a Reasonable Endeavours basis, please see our [Support Policy](https://www.linuxserver.io/supportpolicy) for details.
|
||||
- There is no `latest` tag for any of our base images, by design. We often make breaking changes between versions, and we don't publish release notes like we do for the downstream images.
|
||||
- If you're intending to distribute an image using one of our bases, please read our [docs on container branding](https://docs.linuxserver.io/general/container-branding/) first.
|
||||
- Images are supported for as long as the upstream release on which they are based, after which we will stop building new base images for that version.
|
||||
|
||||
| Type | Address/Details |
|
||||
| :---: | --- |
|
||||
| Discord | [Discord](https://discord.gg/YWrKVTn) |
|
||||
| IRC | freenode at `#linuxserver.io` more information at:- [IRC][ircurl]
|
||||
| Forum | [LinuxServer.io forum][forumurl] |
|
||||
# Options
|
||||
|
||||
|
||||
|
||||
All application settings are passed via environment variables:
|
||||
|
||||
[](https://microbadger.com/images/lsiobase/rdesktop "Get your own image badge on microbadger.com")
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| LC_ALL | Set the Language for the container to run as IE `fr_FR.UTF-8` `ar_AE.UTF-8` |
|
||||
| NO_DECOR | If set the application will run without window borders. (Decor can be enabled and disabled with Ctrl+Shift+d) |
|
||||
| NO_FULL | Do not autmatically fullscreen applications when using openbox. |
|
||||
|
||||
[](https://github.com/linuxserver/docker-baseimage-rdesktop/blob/master/Dockerfile)
|
||||
## Language Support - Internationalization
|
||||
|
||||
A custom base image built with [Ubuntu linux](https://www.ubuntu.com/) and [xrdp](http://xrdp.org/)
|
||||
The environment variable `LC_ALL` can be used to start this image in a different language than English simply pass for example to launch the Desktop session in French `LC_ALL=fr_FR.UTF-8`. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup.
|
||||
|
||||
To install cjk fonts on startup as an example pass the environment variables(Debian):
|
||||
|
||||
```
|
||||
-e DOCKER_MODS=linuxserver/mods:universal-package-install
|
||||
-e INSTALL_PACKAGES=fonts-noto-cjk
|
||||
-e LC_ALL=zh_CN.UTF-8
|
||||
```
|
||||
|
||||
# Available Distros
|
||||
|
||||
All base images are built for x86_64 and aarch64 platforms.
|
||||
|
||||
| Distro | Current Tag |
|
||||
| :----: | --- |
|
||||
| Ubuntu | ubuntunoble |
|
||||
|
||||
# PRoot Apps
|
||||
|
||||
All images include [proot-apps](https://github.com/linuxserver/proot-apps) which allow portable applications to be installed to persistent storage in the user's `$HOME` directory. These applications and their settings will persist upgrades of the base container and can be mounted into different flavors of rdesktop containers. IE if you are running an Alpine based container you will be able to use the same `/config` directory mounted into an Ubuntu based container and retain the same applications and settings as long as they were installed with `proot-apps install`.
|
||||
|
||||
A list of linuxserver.io supported applications is located [HERE](https://github.com/linuxserver/proot-apps?tab=readme-ov-file#supported-apps).
|
||||
|
||||
# I like to read documentation
|
||||
|
||||
## Building images
|
||||
|
||||
### Application containers
|
||||
|
||||
Included in these base images is a simple [Openbox DE](http://openbox.org/) and the accompanying logic needed to launch a single application. Lets look at the bare minimum needed to create an application container starting with a Dockerfile:
|
||||
|
||||
```
|
||||
FROM ghcr.io/linuxserver/baseimage-rdesktop:alpine320
|
||||
RUN apk add --no-cache firefox
|
||||
COPY /root /
|
||||
```
|
||||
|
||||
And we can define the application to start using:
|
||||
|
||||
```
|
||||
mkdir -p root/defaults
|
||||
echo "firefox" > root/defaults/autostart
|
||||
```
|
||||
|
||||
Resulting in a folder that looks like this:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── autostart
|
||||
```
|
||||
|
||||
Now build and test:
|
||||
|
||||
```
|
||||
docker build -t firefox .
|
||||
docker run --rm -it -p 3389:3389 firefox bash
|
||||
```
|
||||
|
||||
On rdp port 3389 you will be presented with a fullscreen firefox window.
|
||||
|
||||
This similar setup can be used to embed any Linux Desktop application in an rdp accesible container.
|
||||
|
||||
**If building images it is important to note that many application will not work inside of Docker without `--security-opt seccomp=unconfined`, they may have launch flags to not use syscalls blocked by Docker like with chromium based applications and `--no-sandbox`. In general do not expect every application will simply work like a native Linux installation without some modifications**
|
||||
|
||||
#### In container application launching
|
||||
|
||||
Also included in the init logic is the ability to define application launchers. As the user has the ability to close the application or if they want to open multiple instances of it this can be useful. Here is an example of a menu definition file for Firefox:
|
||||
|
||||
```
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openbox_menu xmlns="http://openbox.org/3.4/menu">
|
||||
<menu id="root-menu" label="MENU">
|
||||
<item label="xterm" icon="/usr/share/pixmaps/xterm-color_48x48.xpm"><action name="Execute"><command>/usr/bin/xterm</command></action></item>
|
||||
<item label="FireFox" icon="/usr/share/icons/hicolor/48x48/apps/firefox.png"><action name="Execute"><command>/usr/bin/firefox</command></action></item>
|
||||
</menu>
|
||||
</openbox_menu>
|
||||
```
|
||||
|
||||
Simply create this file and add it to your defaults folder as `menu.xml`:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── autostart
|
||||
└── menu.xml
|
||||
```
|
||||
|
||||
This allows users to right click the desktop background to launch the application.
|
||||
|
||||
|
||||
### Full Desktop environments
|
||||
|
||||
When building an application container we are leveraging the Openbox DE to handle window management, but it is also possible to completely replace the DE that is launched on container init using the `startwm.sh` script, located again in defaults:
|
||||
|
||||
```
|
||||
├── Dockerfile
|
||||
└── root
|
||||
└── defaults
|
||||
└── startwm.sh
|
||||
```
|
||||
|
||||
If included in the build logic it will be launched in place of Openbox. Examples for this kind of configuration can be found in our [rdesktop repository](https://github.com/linuxserver/docker-rdesktop)
|
||||
|
||||
## Open Source GPU Acceleration
|
||||
|
||||
For accelerated apps or games, render devices can be mounted into the container and leveraged by applications using:
|
||||
|
||||
`--device /dev/dri:/dev/dri`
|
||||
|
||||
This feature only supports **Open Source** GPU drivers:
|
||||
|
||||
| Driver | Description |
|
||||
| :----: | --- |
|
||||
| Intel | i965 and i915 drivers for Intel iGPU chipsets |
|
||||
| AMD | AMDGPU, Radeon, and ATI drivers for AMD dedicated or APU chipsets |
|
||||
| NVIDIA | nouveau2 drivers only, closed source NVIDIA drivers lack DRI3 support |
|
||||
|
||||
## Nvidia GPU Support
|
||||
|
||||
**Nvidia is not compatible with Alpine based images**
|
||||
|
||||
Nvidia support is available by leveraging Zink for OpenGL support. This can be enabled with the following run flags:
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| --gpus all | This can be filtered down but for most setups this will pass the one Nvidia GPU on the system |
|
||||
| --runtime nvidia | Specify the Nvidia runtime which mounts drivers and tools in from the host |
|
||||
|
||||
The compose syntax is slightly different for this as you will need to set nvidia as the default runtime:
|
||||
|
||||
```
|
||||
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
|
||||
sudo service docker restart
|
||||
```
|
||||
|
||||
And to assign the GPU in compose:
|
||||
|
||||
```
|
||||
services:
|
||||
myimage:
|
||||
image: myname/myimage:mytag
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [compute,video,graphics,utility]
|
||||
```
|
||||
|
||||
The following line is only in this repo for loop testing:
|
||||
|
||||
- { date: "01.01.50:", desc: "I am the release message for this internal repo." }
|
||||
{%- endraw %}
|
||||
|
||||
1
root/defaults/autostart
Executable file
1
root/defaults/autostart
Executable file
@ -0,0 +1 @@
|
||||
xterm
|
||||
0
root/defaults/bashrc
Normal file → Executable file
0
root/defaults/bashrc
Normal file → Executable file
6
root/defaults/menu.xml
Normal file
6
root/defaults/menu.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openbox_menu xmlns="http://openbox.org/3.4/menu">
|
||||
<menu id="root-menu" label="MENU">
|
||||
<item label="xterm" icon="/usr/share/pixmaps/xterm-color_48x48.xpm"><action name="Execute"><command>/usr/bin/xterm</command></action></item>
|
||||
</menu>
|
||||
</openbox_menu>
|
||||
16
root/defaults/startwm.sh
Executable file
16
root/defaults/startwm.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Combine env
|
||||
/usr/bin/with-contenv /usr/bin/env | sed 's/^/export /g' > /defaults/env.sh
|
||||
source /defaults/env.sh
|
||||
rm /defaults/env.sh
|
||||
|
||||
# Enable Nvidia GPU support if detected
|
||||
if which nvidia-smi; then
|
||||
export LIBGL_KOPPER_DRI2=1
|
||||
export MESA_LOADER_DRIVER_OVERRIDE=zink
|
||||
export GALLIUM_DRIVER=zink
|
||||
fi
|
||||
|
||||
/startpulse.sh &
|
||||
/usr/bin/openbox-session
|
||||
@ -1,23 +0,0 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
if [ ! -e /lock.file ]; then
|
||||
# give abc a sudo shell
|
||||
chsh abc -s /bin/bash
|
||||
sed -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' \
|
||||
-i /etc/sudoers
|
||||
sed -e 's/^wheel:\(.*\)/wheel:\1,abc/g' -i /etc/group
|
||||
fi
|
||||
|
||||
# create lock file after first run
|
||||
touch /lock.file
|
||||
|
||||
# default file copies first run
|
||||
[[ ! -d /config/.config ]] && \
|
||||
mkdir -p /config/.config && \
|
||||
cp /defaults/bashrc /config/.bashrc && \
|
||||
cp /defaults/startwm.sh /config/startwm.sh
|
||||
|
||||
# permissions
|
||||
PERM=$(stat -c '%U' /config/.config)
|
||||
[[ "${PERM}" != "abc" ]] && \
|
||||
chown -R abc:abc /config
|
||||
13
root/etc/s6-overlay/s6-rc.d/init-keygen/run
Executable file
13
root/etc/s6-overlay/s6-rc.d/init-keygen/run
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
if [[ ! -f "/keylock" ]]; then
|
||||
cd /etc/xrdp || exit 1
|
||||
xrdp-keygen xrdp
|
||||
rm -f /etc/xrdp/*.pem
|
||||
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
|
||||
-keyout /etc/xrdp/key.pem \
|
||||
-out /etc/xrdp/cert.pem \
|
||||
-subj "/C=US/ST=CA/L=Carlsbad/O=Linuxserver.io/OU=LSIO Server/CN=*"
|
||||
touch /keylock
|
||||
fi
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-keygen/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-keygen/type
Normal file
@ -0,0 +1 @@
|
||||
oneshot
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-keygen/up
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-keygen/up
Normal file
@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-keygen/run
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-prep-xrdp/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-prep-xrdp/type
Normal file
@ -0,0 +1 @@
|
||||
oneshot
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-prep-xrdp/up
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-prep-xrdp/up
Normal file
@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-prep-xrdp/run
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop-end/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop-end/type
Normal file
@ -0,0 +1 @@
|
||||
oneshot
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop-end/up
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop-end/up
Normal file
@ -0,0 +1 @@
|
||||
# This file doesn't do anything, it's just the end of the rdesktop base init process
|
||||
67
root/etc/s6-overlay/s6-rc.d/init-rdesktop/run
Executable file
67
root/etc/s6-overlay/s6-rc.d/init-rdesktop/run
Executable file
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
# default file copies first run
|
||||
if [[ ! -d /config/.config ]]; then
|
||||
mkdir -p /config/.config
|
||||
cp /defaults/bashrc /config/.bashrc
|
||||
cp /defaults/startwm.sh /config/startwm.sh
|
||||
fi
|
||||
if [[ ! -f /config/.config/openbox/autostart ]]; then
|
||||
mkdir -p /config/.config/openbox
|
||||
cp /defaults/autostart /config/.config/openbox/autostart
|
||||
fi
|
||||
if [[ ! -f /config/.config/openbox/menu.xml ]]; then
|
||||
mkdir -p /config/.config/openbox
|
||||
cp /defaults/menu.xml /config/.config/openbox/menu.xml
|
||||
fi
|
||||
|
||||
# XDG Home
|
||||
printf "/config/.XDG" > /run/s6/container_environment/XDG_RUNTIME_DIR
|
||||
if [ ! -d "/config/.XDG" ]; then
|
||||
mkdir -p /config/.XDG
|
||||
chown abc:abc /config/.XDG
|
||||
fi
|
||||
|
||||
# Locale Support
|
||||
if [ ! -z ${LC_ALL+x} ]; then
|
||||
printf "${LC_ALL%.UTF-8}" > /run/s6/container_environment/LANGUAGE
|
||||
printf "${LC_ALL}" > /run/s6/container_environment/LANG
|
||||
fi
|
||||
|
||||
# Remove window borders
|
||||
if [[ ! -z ${NO_DECOR+x} ]] && [[ ! -f /decorlock ]]; then
|
||||
sed -i \
|
||||
's|</applications>| <application class="*"> <decor>no</decor> </application>\n</applications>|' \
|
||||
/etc/xdg/openbox/rc.xml
|
||||
touch /decorlock
|
||||
fi
|
||||
|
||||
# Fullscreen everything in openbox unless the user explicitly disables it
|
||||
if [[ ! -z ${NO_FULL+x} ]] && [[ ! -f /fulllock ]]; then
|
||||
sed -i \
|
||||
'/<application class="\*"><maximized>yes<\/maximized><\/application>/d' \
|
||||
/etc/xdg/openbox/rc.xml
|
||||
touch /fulllock
|
||||
fi
|
||||
|
||||
# Add proot-apps
|
||||
if [ ! -f "/config/.local/bin/proot-apps" ]; then
|
||||
mkdir -p /config/.local/bin/
|
||||
cp /proot-apps/* /config/.local/bin/
|
||||
echo 'export PATH="/config/.local/bin:$PATH"' >> /config/.bashrc
|
||||
chown abc:abc \
|
||||
/config/.bashrc \
|
||||
/config/.local/ \
|
||||
/config/.local/bin \
|
||||
/config/.local/bin/{ncat,proot-apps,proot,jq,pversion}
|
||||
elif ! diff -q /proot-apps/pversion /config/.local/bin/pversion > /dev/null; then
|
||||
cp /proot-apps/* /config/.local/bin/
|
||||
chown abc:abc /config/.local/bin/{ncat,proot-apps,proot,jq,pversion}
|
||||
fi
|
||||
|
||||
# permissions
|
||||
PERM=$(stat -c '%U' /config/.config)
|
||||
if [[ "${PERM}" != "abc" ]]; then
|
||||
chown -R abc:abc /config
|
||||
fi
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop/type
Normal file
@ -0,0 +1 @@
|
||||
oneshot
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop/up
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-rdesktop/up
Normal file
@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-rdesktop/run
|
||||
36
root/etc/s6-overlay/s6-rc.d/init-video/run
Executable file
36
root/etc/s6-overlay/s6-rc.d/init-video/run
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)
|
||||
|
||||
for i in $FILES
|
||||
do
|
||||
VIDEO_GID=$(stat -c '%g' "${i}")
|
||||
VIDEO_UID=$(stat -c '%u' "${i}")
|
||||
# check if user matches device
|
||||
if id -u abc | grep -qw "${VIDEO_UID}"; then
|
||||
echo "**** permissions for ${i} are good ****"
|
||||
else
|
||||
# check if group matches and that device has group rw
|
||||
if id -G abc | grep -qw "${VIDEO_GID}" && [[ $(stat -c '%A' "${i}" | cut -b 5,6) = "rw" ]]; then
|
||||
echo "**** permissions for ${i} are good ****"
|
||||
# check if device needs to be added to video group
|
||||
elif ! id -G abc | grep -qw "${VIDEO_GID}"; then
|
||||
# check if video group needs to be created
|
||||
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
|
||||
if [ -z "${VIDEO_NAME}" ]; then
|
||||
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c4)"
|
||||
groupadd "${VIDEO_NAME}"
|
||||
groupmod -g "${VIDEO_GID}" "${VIDEO_NAME}"
|
||||
echo "**** creating video group ${VIDEO_NAME} with id ${VIDEO_GID} ****"
|
||||
fi
|
||||
echo "**** adding ${i} to video group ${VIDEO_NAME} with id ${VIDEO_GID} ****"
|
||||
usermod -a -G "${VIDEO_NAME}" abc
|
||||
fi
|
||||
# check if device has group rw
|
||||
if [[ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]]; then
|
||||
echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container.If it doesn't work, you can run the following on your docker host: ****\nsudo chmod g+rw ${i}\n"
|
||||
chmod g+rw "${i}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-video/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-video/type
Normal file
@ -0,0 +1 @@
|
||||
oneshot
|
||||
1
root/etc/s6-overlay/s6-rc.d/init-video/up
Normal file
1
root/etc/s6-overlay/s6-rc.d/init-video/up
Normal file
@ -0,0 +1 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-video/run
|
||||
@ -0,0 +1 @@
|
||||
4
|
||||
@ -1,9 +1,9 @@
|
||||
#!/bin/execlineb -P
|
||||
#! /usr/bin/execlineb -P
|
||||
|
||||
# Redirect stderr to stdout.
|
||||
fdmove -c 2 1
|
||||
|
||||
# Notify service manager when xrdp is up
|
||||
s6-notifyoncheck -w 500 -c "true &>/dev/null </dev/tcp/127.0.0.1/3350"
|
||||
s6-notifyoncheck -w 500 -c "nc -z localhost 3350"
|
||||
|
||||
/usr/sbin/xrdp-sesman --nodaemon
|
||||
1
root/etc/s6-overlay/s6-rc.d/svc-xrdp-sesman/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/svc-xrdp-sesman/type
Normal file
@ -0,0 +1 @@
|
||||
longrun
|
||||
12
root/etc/s6-overlay/s6-rc.d/svc-xrdp/run
Executable file
12
root/etc/s6-overlay/s6-rc.d/svc-xrdp/run
Executable file
@ -0,0 +1,12 @@
|
||||
#! /usr/bin/execlineb -P
|
||||
|
||||
# Move stderr to out so it's piped to logger
|
||||
fdmove -c 2 1
|
||||
|
||||
# Notify service manager when xrdp is up
|
||||
s6-notifyoncheck -w 500 -c "nc -z localhost 3389"
|
||||
|
||||
# set env
|
||||
s6-env DISPLAY=:1
|
||||
|
||||
/usr/sbin/xrdp --nodaemon
|
||||
1
root/etc/s6-overlay/s6-rc.d/svc-xrdp/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/svc-xrdp/type
Normal file
@ -0,0 +1 @@
|
||||
longrun
|
||||
@ -1 +0,0 @@
|
||||
3
|
||||
@ -1,15 +0,0 @@
|
||||
#!/bin/execlineb -P
|
||||
|
||||
# Move stderr to out so it's piped to logger
|
||||
fdmove -c 2 1
|
||||
|
||||
# Notify service manager when xrdp is up
|
||||
s6-notifyoncheck -w 500 -c "true &>/dev/null </dev/tcp/127.0.0.1/3389"
|
||||
|
||||
# Wait until other services are running
|
||||
if { s6-svwait -t 10000 -U /var/run/s6/services/xrdp-sesman/ }
|
||||
|
||||
# set env
|
||||
s6-env DISPLAY=:1
|
||||
|
||||
/usr/sbin/xrdp --nodaemon
|
||||
8
root/startpulse.sh
Executable file
8
root/startpulse.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
while :
|
||||
do
|
||||
if [[ ! $(/usr/bin/pulseaudio --check) ]]; then
|
||||
/usr/bin/pulseaudio --start
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
Loading…
x
Reference in New Issue
Block a user