Compare commits

...

29 Commits

Author SHA1 Message Date
LinuxServer-CI
e12a07d592 Bot Updating Package Versions 2022-08-20 17:24:30 +02:00
LinuxServer-CI
1271534c45 Bot Updating Package Versions 2022-08-13 10:24:38 -05:00
LinuxServer-CI
aa503bd03f Bot Updating Package Versions 2022-08-06 10:23:39 -05:00
LinuxServer-CI
3e5aba743c Bot Updating Package Versions 2022-07-30 17:23:57 +02:00
LinuxServer-CI
2fe3dba4ea Bot Updating Package Versions 2022-07-23 10:24:17 -05:00
LinuxServer-CI
c3ddc86df9 Bot Updating Package Versions 2022-07-16 17:23:40 +02:00
LinuxServer-CI
2e43a0abdf Bot Updating Package Versions 2022-07-09 17:24:27 +02:00
LinuxServer-CI
2ae48449cc Bot Updating Package Versions 2022-07-02 10:22:58 -05:00
LinuxServer-CI
967763e825 Bot Updating Package Versions 2022-06-25 17:23:59 +02:00
LinuxServer-CI
6cf9be27cf Bot Updating Package Versions 2022-06-18 10:30:34 -05:00
LinuxServer-CI
4721d530d3 Bot Updating Package Versions 2022-06-18 10:22:41 -05:00
LinuxServer-CI
9c3968ac11 Bot Updating Package Versions 2022-06-11 10:22:46 -05:00
LinuxServer-CI
715ee7c5e4 Bot Updating Package Versions 2022-06-04 10:22:37 -05:00
LinuxServer-CI
47fe4054af Bot Updating Package Versions 2022-05-28 10:25:00 -05:00
LinuxServer-CI
326f2dff20 Bot Updating Package Versions 2022-05-21 10:25:03 -05:00
LinuxServer-CI
bdc338d6c9 Bot Updating Package Versions 2022-05-14 17:26:17 +02:00
LinuxServer-CI
50b38ad81e Bot Updating Package Versions 2022-05-07 17:31:31 +02:00
LinuxServer-CI
58c1a0705a Bot Updating Templated Files 2022-05-07 17:23:19 +02:00
LinuxServer-CI
bb35867547 Bot Updating Package Versions 2022-04-30 15:35:45 +00:00
LinuxServer-CI
a1fa7a2eed Bot Updating Templated Files 2022-04-30 17:25:09 +02:00
LinuxServer-CI
577a579d0c Bot Updating Templated Files 2022-04-30 17:22:54 +02:00
LinuxServer-CI
af8944772a Bot Updating Package Versions 2022-04-23 10:25:25 -05:00
LinuxServer-CI
60d80ffebc Bot Updating Package Versions 2022-04-16 10:25:35 -05:00
LinuxServer-CI
f59d9bec30 Bot Updating Package Versions 2022-04-09 17:24:35 +02:00
LinuxServer-CI
21c4bf5b41 Bot Updating Package Versions 2022-04-02 17:24:11 +02:00
LinuxServer-CI
a6ff73a1ba Bot Updating Package Versions 2022-03-26 16:24:13 +01:00
LinuxServer-CI
5da70710f8 Bot Updating Package Versions 2022-03-19 10:23:44 -05:00
LinuxServer-CI
de5aed392b Bot Updating Package Versions 2022-03-12 09:23:41 -06:00
thelamer
33d32cdc13 add arch-i3 branch 2022-03-06 14:33:49 -08:00
14 changed files with 651 additions and 697 deletions

View File

@ -24,7 +24,7 @@
## 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-rdesktop/edit/master/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-rdesktop/edit/arch-i3/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/images/docker-rdesktop)
@ -115,7 +115,7 @@ 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-rdesktop/tree/master/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-rdesktop/tree/arch-i3/root), add an entry to the changelog
```yml
changelogs:

View File

@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-rdesktop/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-rdesktop/blob/arch-i3/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

View File

@ -4,13 +4,13 @@ on:
workflow_dispatch:
jobs:
external-trigger-master:
external-trigger-arch-i3:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: External Trigger
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/arch-i3'
run: |
echo "**** No external release, exiting ****"
exit 0

View File

@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-rdesktop/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-rdesktop/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-rdesktop/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-rdesktop/blob/arch-i3/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-rdesktop/blob/arch-i3/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-rdesktop/blob/arch-i3/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -4,25 +4,25 @@ on:
workflow_dispatch:
jobs:
package-trigger-master:
package-trigger-arch-i3:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/arch-i3'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RDESKTOP_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RDESKTOP_MASTER is set; skipping trigger. ****"
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RDESKTOP_ARCH_I3 }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RDESKTOP_ARCH_I3 is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/arch-i3/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RDESKTOP_MASTER\". ****"
echo "**** Package trigger running off of arch-i3 branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RDESKTOP_ARCH_I3\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/master/buildWithParameters?PACKAGE_CHECK=true \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/arch-i3/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-rdesktop:focal
FROM ghcr.io/linuxserver/baseimage-rdesktop:arch-dbus
# set version label
ARG BUILD_DATE
@ -7,22 +7,22 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thelamer"
RUN \
echo "**** install packages ****" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
firefox \
mousepad \
xfce4-terminal \
xfce4 \
xubuntu-default-settings \
xubuntu-icon-theme && \
echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** install packages ****" && \
pacman -Sy --noconfirm --needed \
firefox \
i3-wm \
i3status \
leafpad \
pavucontrol && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 3389
VOLUME /config

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm64v8-focal
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm64v8-arch-dbus
# set version label
ARG BUILD_DATE
@ -7,22 +7,22 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thelamer"
RUN \
echo "**** install packages ****" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
firefox \
mousepad \
xfce4-terminal \
xfce4 \
xubuntu-default-settings \
xubuntu-icon-theme && \
echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** install packages ****" && \
pacman -Sy --noconfirm --needed \
firefox \
i3-wm \
i3status \
leafpad \
pavucontrol && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 3389
VOLUME /config

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm32v7-focal
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm32v7-arch-dbus
# set version label
ARG BUILD_DATE
@ -7,22 +7,22 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
LABEL maintainer="thelamer"
RUN \
echo "**** install packages ****" && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends -y \
firefox \
mousepad \
xfce4-terminal \
xfce4 \
xubuntu-default-settings \
xubuntu-icon-theme && \
echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** install packages ****" && \
pacman -Sy --noconfirm --needed \
firefox \
i3-wm \
i3status \
leafpad \
pavucontrol && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 3389
VOLUME /config

134
Jenkinsfile vendored
View File

@ -17,23 +17,23 @@ pipeline {
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
BUILD_VERSION_ARG = 'OS_VERSION'
BUILD_VERSION_ARG = 'I3_VERSION'
LS_USER = 'linuxserver'
LS_REPO = 'docker-rdesktop'
CONTAINER_NAME = 'rdesktop'
DOCKERHUB_IMAGE = 'linuxserver/rdesktop'
DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop'
PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop'
DIST_IMAGE = 'ubuntu'
MULTIARCH='true'
CI='true'
CI_WEB='false'
CI_PORT='3389'
CI_SSL='false'
CI_DELAY='30'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_WEBPATH=''
DIST_IMAGE = 'arch'
MULTIARCH = 'true'
CI = 'true'
CI_WEB = 'false'
CI_PORT = '3000'
CI_SSL = 'false'
CI_DELAY = '30'
CI_DOCKERENV = 'TZ=US/Pacific'
CI_AUTH = 'user:password'
CI_WEBPATH = ''
}
stages {
// Setup all the basic environment variables needed for the build
@ -42,7 +42,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':arch-i3 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@ -142,10 +142,10 @@ pipeline {
}
}
}
// If this is a master build use live docker endpoints
// If this is a arch-i3 build use live docker endpoints
stage("Set ENV live build"){
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
}
steps {
@ -155,20 +155,20 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'amd64-arch-i3-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-arch-i3-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-arch-i3-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.CI_TAGS = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'arch-i3-version-' + env.EXT_RELEASE_CLEAN
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
not {branch "arch-i3"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@ -178,13 +178,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'amd64-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.CI_TAGS = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'arch-i3-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
}
}
@ -201,13 +201,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'amd64-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.CI_TAGS = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.META_TAG = 'arch-i3-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'arch-i3-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
}
@ -245,7 +245,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@ -256,13 +256,13 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=arch-i3 -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f arch-i3
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
@ -285,7 +285,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f arch-i3
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
@ -306,7 +306,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master
git checkout -f arch-i3
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@ -341,9 +341,11 @@ pipeline {
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template"
git rm unraid/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Removing Deprecated Unraid Template' || :
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
@ -362,7 +364,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@ -401,7 +403,7 @@ pipeline {
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "master"
branch "arch-i3"
environment name: 'EXIT_STATUS', value: ''
}
steps{
@ -450,7 +452,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Rdesktop\" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP. \" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
@ -480,7 +482,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Rdesktop\" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP. \" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
@ -507,7 +509,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Rdesktop\" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP. \" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. \" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
@ -541,7 +543,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Rdesktop\" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP. \" \
--label \"org.opencontainers.image.description=[Rdesktop](http://xrdp.org/) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
@ -558,7 +560,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@ -595,7 +597,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f arch-i3
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
@ -619,7 +621,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@ -640,7 +642,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
branch "arch-i3"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@ -743,12 +745,12 @@ pipeline {
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:arch-i3
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:latest
docker push ${PUSHIMAGE}:arch-i3
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@ -762,7 +764,7 @@ pipeline {
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || :
${DELETEIMAGE}:arch-i3 || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
@ -809,9 +811,9 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-arch-i3
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-arch-i3
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-arch-i3
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
@ -823,9 +825,9 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:amd64-arch-i3
docker push ${MANIFESTIMAGE}:arm32v7-arch-i3
docker push ${MANIFESTIMAGE}:arm64v8-arch-i3
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
@ -834,10 +836,10 @@ pipeline {
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:arch-i3 || :
docker manifest create ${MANIFESTIMAGE}:arch-i3 ${MANIFESTIMAGE}:amd64-arch-i3 ${MANIFESTIMAGE}:arm32v7-arch-i3 ${MANIFESTIMAGE}:arm64v8-arch-i3
docker manifest annotate ${MANIFESTIMAGE}:arch-i3 ${MANIFESTIMAGE}:arm32v7-arch-i3 --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:arch-i3 ${MANIFESTIMAGE}:arm64v8-arch-i3 --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
@ -852,7 +854,7 @@ pipeline {
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:arch-i3
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
@ -865,13 +867,13 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-arch-i3 \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-arch-i3 \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \
${DELETEIMAGE}:arm64v8-arch-i3 \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
@ -890,7 +892,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
branch "arch-i3"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@ -902,17 +904,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to arch-i3",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\
"target_commitish": "arch-i3",\
"name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**OS Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}

115
README.md
View File

@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-rdesktop/blob/master/.github/CONTRIBUTING.md -->
<!-- Please read the https://github.com/linuxserver/docker-rdesktop/blob/arch-i3/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@ -37,57 +37,69 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/rdesktop)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/rdesktop.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/rdesktop)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/rdesktop.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/rdesktop)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-rdesktop%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/master/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-rdesktop%2Fjob%2Farch-i3%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/arch-i3/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Frdesktop%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/rdesktop/latest/index.html)
[Rdesktop](http://xrdp.org/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP.
[Rdesktop](http://xrdp.org/) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP.
[![rdesktop](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rdesktop.png)](http://xrdp.org/)
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/rdesktop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/rdesktop:arch-i3` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Description |
| :----: | --- |
| latest | XFCE Focal |
| xfce-bionic | XFCE Bionic |
| kde-focal | KDE Focal |
| kde-bionic | KDE Bionic |
| mate-focal | MATE Focal |
| mate-bionic | MATE Bionic |
| i3-focal | i3 Focal |
| i3-bionic | i3 Bionic |
| openbox-focal | Openbox Focal |
| openbox-bionic | Openbox Bionic |
| icewm-focal | IceWM Focal |
| icewm-bionic | IceWM Bionic |
| alpine | XFCE Alpine |
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | XFCE Alpine |
| ubuntu-xfce | ✅ | XFCE Ubuntu |
| fedora-xfce | ✅ | XFCE Fedora |
| arch-xfce | ✅ | XFCE Arch |
| alpine-kde | ✅ | KDE Alpine |
| ubuntu-kde | ✅ | KDE Ubuntu |
| fedora-kde | ✅ | KDE Fedora |
| arch-kde | ✅ | KDE Arch |
| alpine-mate | ✅ | MATE Alpine |
| ubuntu-mate | ✅ | MATE Ubuntu |
| fedora-mate | ✅ | MATE Fedora |
| arch-mate | ✅ | MATE Arch |
| alpine-i3 | ✅ | i3 Alpine |
| ubuntu-i3 | ✅ | i3 Ubuntu |
| fedora-i3 | ✅ | i3 Fedora |
| arch-i3 | ✅ | i3 Arch |
| alpine-openbox | ✅ | Openbox Alpine |
| ubuntu-openbox | ✅ | Openbox Ubuntu |
| fedora-openbox | ✅ | Openbox Fedora |
| arch-openbox | ✅ | Openbox Arch |
| alpine-icewm | ✅ | IceWM Alpine |
| ubuntu-icewm | ✅ | IceWM Ubuntu |
| fedora-icewm | ✅ | IceWM Fedora |
| arch-icewm | ✅ | IceWM Arch |
## Application Setup
**The Default USERNAME and PASSWORD is: abc/abc**
**Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt program**
**The KDE and i3 flavors need to be run in privileged mode to function properly**
**Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program**
You will need a Remote Desktop client to access this container [Wikipedia List](https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software), by default it listens on 3389, but you can change that port to whatever you wish on the host side IE `3390:3389`.
The first thing you should do when you login to the container is to change the abc users password by issuing the `passwd` command.
The first thing you should do when you login to the container is to change the abc users password by issuing the `passwd` command.
**Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the `--security-opt seccomp=unconfined` setting to allow these syscalls or try [podman](https://podman.io/) as they have updated their codebase to support them**
If you ever lose your password you can always reset it by execing into the container as root:
```
docker exec -it rdesktop passwd abc
@ -95,6 +107,28 @@ docker exec -it rdesktop passwd abc
By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a `startwm.sh` executable script in their home directory.
All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.
## Hardware Acceleration (Ubuntu Container Only)
Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.
### Intel/ATI/AMD
To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer.
```
--device=/dev/dri:/dev/dri
```
We will automatically ensure the abc user inside of the container has the proper permissions to access this device.
### Nvidia
Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here:
https://github.com/NVIDIA/nvidia-docker
We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the container.
### Arm Devices
Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable `dtoverlay=vc4-fkms-v3d` in your usercfg.txt.
## Usage
Here are some example snippets to help you get started creating a container.
@ -106,9 +140,10 @@ Here are some example snippets to help you get started creating a container.
version: "2.1"
services:
rdesktop:
image: lscr.io/linuxserver/rdesktop
image: lscr.io/linuxserver/rdesktop:arch-i3
container_name: rdesktop
privileged: true #optional
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1000
@ -118,6 +153,8 @@ services:
- /path/to/data:/config #optional
ports:
- 3389:3389
devices:
- /dev/dri:/dev/dri #optional
shm_size: "1gb" #optional
restart: unless-stopped
```
@ -127,16 +164,17 @@ services:
```bash
docker run -d \
--name=rdesktop \
--privileged `#optional` \
--security-opt seccomp=unconfined `#optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 3389:3389 \
-v /var/run/docker.sock:/var/run/docker.sock `#optional` \
-v /path/to/data:/config `#optional` \
--device /dev/dri:/dev/dri `#optional` \
--shm-size="1gb" `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/rdesktop
lscr.io/linuxserver/rdesktop:arch-i3
```
## Parameters
@ -151,7 +189,9 @@ Container images are configured using parameters passed at runtime (such as thos
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-v /var/run/docker.sock` | Docker Socket on the system, if you want to use Docker in the container |
| `-v /config` | abc users home directory |
| `--device /dev/dri` | Add this for GL support (Linux hosts only) |
| `--shm-size=` | We set this to 1 gig to prevent modern web browsers from crashing |
| `--security-opt seccomp=unconfined` | For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker |
## Environment variables from files (Docker secrets)
@ -196,7 +236,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' rdesktop`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/rdesktop`
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/rdesktop:arch-i3`
## Updating Info
@ -214,7 +254,7 @@ Below are the instructions for updating containers:
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/rdesktop`
* Update the image: `docker pull lscr.io/linuxserver/rdesktop:arch-i3`
* Stop the running container: `docker stop rdesktop`
* Delete the container: `docker rm rdesktop`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@ -249,7 +289,7 @@ cd docker-rdesktop
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/rdesktop:latest .
-t lscr.io/linuxserver/rdesktop:arch-i3 .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@ -262,6 +302,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **05.03.22:** - Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel.
* **05.05.21:** - Reduce default packages to their flavor specific basics.
* **05.04.21:** - Add Alpine flavor.
* **06.04.20:** - Start PulseAudio in images to support audio

View File

@ -3,24 +3,24 @@
# jenkins variables
project_name: docker-rdesktop
external_type: os
release_type: stable
release_tag: latest
ls_branch: master
release_type: prerelease
release_tag: arch-i3
ls_branch: arch-i3
repo_vars:
- BUILD_VERSION_ARG = 'OS_VERSION'
- BUILD_VERSION_ARG = 'I3_VERSION'
- LS_USER = 'linuxserver'
- LS_REPO = 'docker-rdesktop'
- CONTAINER_NAME = 'rdesktop'
- DOCKERHUB_IMAGE = 'linuxserver/rdesktop'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop'
- PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop'
- DIST_IMAGE = 'ubuntu'
- MULTIARCH='true'
- CI='true'
- CI_WEB='false'
- CI_PORT='3389'
- CI_SSL='false'
- CI_DELAY='30'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_WEBPATH=''
- DIST_IMAGE = 'arch'
- MULTIARCH = 'true'
- CI = 'true'
- CI_WEB = 'false'
- CI_PORT = '3000'
- CI_SSL = 'false'
- CI_DELAY = '30'
- CI_DOCKERENV = 'TZ=US/Pacific'
- CI_AUTH = 'user:password'
- CI_WEBPATH = ''

View File

@ -1,493 +1,364 @@
adduser3.118ubuntu2
adwaita-icon-theme3.36.1-2ubuntu0.20.04.2
apt2.0.6
apt-transport-https2.0.6
apt-utils2.0.6
base-files11ubuntu5.4
base-passwd3.5.47
bash5.0-6ubuntu1.1
bsdmainutils11.1.2ubuntu3
bsdutils1:2.34-0.1ubuntu9.3
bzip21.0.8-2
ca-certificates20210119~20.04.2
coreutils8.30-3ubuntu2
cpp4:9.3.0-1ubuntu2
cpp-99.3.0-17ubuntu1~20.04
curl7.68.0-1ubuntu2.7
dash0.5.10.2-6
dbus1.12.16-2ubuntu2.1
dbus-user-session1.12.16-2ubuntu2.1
dbus-x111.12.16-2ubuntu2.1
dconf-gsettings-backend0.36.0-1
dconf-service0.36.0-1
debconf1.5.73
debianutils4.9.1
desktop-file-utils0.24-1ubuntu3
diffutils1:3.7-3
dirmngr2.2.19-3ubuntu2.1
distro-info-data0.43ubuntu1.9
docker-ce-cli5:20.10.12~3-0~ubuntu-bionic
dpkg1.19.7ubuntu3
e2fsprogs1.45.5-2ubuntu1
elementary-xfce-icon-theme0.15-1
exo-utils0.12.11-1ubuntu1.20.04.1
fdisk2.34-0.1ubuntu9.3
findutils4.7.0-1ubuntu1
firefox97.0+build2-0ubuntu0.20.04.1
fontconfig2.13.1-2ubuntu3
fontconfig-config2.13.1-2ubuntu3
fonts-dejavu-core2.37-1
fonts-noto-core20200323-1build1~ubuntu20.04.1
fonts-noto-hinted20200323-1build1~ubuntu20.04.1
fonts-noto-ui-core20200323-1build1~ubuntu20.04.1
fonts-ubuntu0.83-4ubuntu1
gawk1:5.0.1+dfsg-1
gcc-10-base10.3.0-1ubuntu1~20.04
gcc-9-base9.3.0-17ubuntu1~20.04
gir1.2-glib-2.01.64.1-1~ubuntu20.04.1
gir1.2-packagekitglib-1.01.1.13-2ubuntu1.1
glib-networking2.64.2-1ubuntu0.1
glib-networking-common2.64.2-1ubuntu0.1
glib-networking-services2.64.2-1ubuntu0.1
gnupg2.2.19-3ubuntu2.1
gnupg22.2.19-3ubuntu2.1
gnupg-l10n2.2.19-3ubuntu2.1
gnupg-utils2.2.19-3ubuntu2.1
gpg2.2.19-3ubuntu2.1
gpg-agent2.2.19-3ubuntu2.1
gpgconf2.2.19-3ubuntu2.1
gpgsm2.2.19-3ubuntu2.1
gpgv2.2.19-3ubuntu2.1
gpg-wks-client2.2.19-3ubuntu2.1
gpg-wks-server2.2.19-3ubuntu2.1
grep3.4-1
greybird-gtk-theme3.22.12-0ubuntu1
groff-base1.22.4-4build1
gsettings-desktop-schemas3.36.0-1ubuntu1
gtk2-engines-murrine0.98.2-3
gtk-update-icon-cache3.24.20-0ubuntu1.1
gzip1.10-0ubuntu4
hicolor-icon-theme0.17-2
hostname3.23
humanity-icon-theme0.6.15
init-system-helpers1.57
iso-codes4.4-1
keyboard-configuration1.194ubuntu3
krb5-locales1.17-6ubuntu4.1
libacl12.2.53-6
libapparmor12.13.3-7ubuntu5.1
libappstream40.12.10-2
libapt-pkg6.02.0.6
libargon2-10~20171227-0.2
libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
libasound21.2.2-2.1ubuntu2.5
libasound2-data1.2.2-2.1ubuntu2.5
libasound2-plugins1.2.2-1ubuntu1
libassuan02.5.3-7ubuntu2
libasyncns00.8-6
libatk1.0-02.35.1-1ubuntu2
libatk1.0-data2.35.1-1ubuntu2
libatk-bridge2.0-02.34.2-0ubuntu2~20.04.1
libatspi2.0-02.36.0-2
libattr11:2.4.48-5
libaudit11:2.8.5-2ubuntu6
libaudit-common1:2.8.5-2ubuntu6
libavahi-client30.7-4ubuntu7.1
libavahi-common30.7-4ubuntu7.1
libavahi-common-data0.7-4ubuntu7.1
libblkid12.34-0.1ubuntu9.3
libbrotli11.0.7-6ubuntu0.1
libbsd00.10.0-1
libbz2-1.01.0.8-2
libc62.31-0ubuntu9.2
libcairo21.16.0-4ubuntu1
libcairo-gobject21.16.0-4ubuntu1
libcap21:2.32-1
libcap2-bin1:2.32-1
libcap-ng00.7.9-2.1build1
libc-bin2.31-0ubuntu9.2
libcbor0.60.6.0-0ubuntu1
libcolord21.4.4-2
libcom-err21.45.5-2ubuntu1
libcrypt11:4.4.10-10ubuntu4
libcryptsetup122:2.2.2-3ubuntu2.4
libcups22.3.1-9ubuntu1.1
libcurl47.68.0-1ubuntu2.7
libdatrie10.2.12-3
libdb5.35.3.28+dfsg1-0.6ubuntu2
libdbus-1-31.12.16-2ubuntu2.1
libdbus-glib-1-20.110-5fakssync1
libdconf10.36.0-1
libdebconfclient00.251ubuntu1
libdevmapper1.02.12:1.02.167-1ubuntu1
libdrm22.4.107-8ubuntu1~20.04.1
libdrm-amdgpu12.4.107-8ubuntu1~20.04.1
libdrm-common2.4.107-8ubuntu1~20.04.1
libdrm-intel12.4.107-8ubuntu1~20.04.1
libdrm-nouveau22.4.107-8ubuntu1~20.04.1
libdrm-radeon12.4.107-8ubuntu1~20.04.1
libedit23.1-20191231-1
libegl11.3.2-1~ubuntu0.20.04.1
libegl-mesa021.2.6-0ubuntu0.1~20.04.1
libelf10.176-1.1build1
libepoxy01.5.4-1
libexif120.6.21-6ubuntu0.4
libexo-2-00.12.11-1ubuntu1.20.04.1
libexo-common0.12.11-1ubuntu1.20.04.1
libexo-helpers0.12.11-1ubuntu1.20.04.1
libexpat12.2.9-1ubuntu0.2
libext2fs21.45.5-2ubuntu1
libfdisk12.34-0.1ubuntu9.3
libffi73.3-4
libfido2-11.3.1-1ubuntu2
libflac81.3.3-1build1
libfontconfig12.13.1-2ubuntu3
libfontenc11:1.1.4-0ubuntu1
libfreetype62.10.1-2ubuntu0.1
libfribidi01.0.8-2
libfuse22.9.9-3
libgarcon-1-00.6.4-1
libgarcon-common0.6.4-1
libgarcon-gtk3-1-00.6.4-1
libgbm121.2.6-0ubuntu0.1~20.04.1
libgcc-s110.3.0-1ubuntu1~20.04
libgcrypt201.8.5-5ubuntu1.1
libgdbm61.18.1-5
libgdk-pixbuf2.0-02.40.0+dfsg-3ubuntu0.2
libgdk-pixbuf2.0-common2.40.0+dfsg-3ubuntu0.2
libgirepository-1.0-11.64.1-1~ubuntu20.04.1
libgl11.3.2-1~ubuntu0.20.04.1
libgl1-mesa-dri21.2.6-0ubuntu0.1~20.04.1
libglapi-mesa21.2.6-0ubuntu0.1~20.04.1
libglib2.0-02.64.6-1~ubuntu20.04.4
libglib2.0-bin2.64.6-1~ubuntu20.04.4
libglib2.0-data2.64.6-1~ubuntu20.04.4
libglvnd01.3.2-1~ubuntu0.20.04.1
libglx01.3.2-1~ubuntu0.20.04.1
libglx-mesa021.2.6-0ubuntu0.1~20.04.1
libgmp102:6.2.0+dfsg-4
libgnutls303.6.13-2ubuntu1.6
libgomp110.3.0-1ubuntu1~20.04
libgpg-error01.37-1
libgraphite2-31.3.13-11build1
libgssapi3-heimdal7.7.0+dfsg-1ubuntu1
libgssapi-krb5-21.17-6ubuntu4.1
libgstreamer1.0-01.16.2-2
libgstreamer-plugins-base1.0-01.16.2-4ubuntu0.1
libgtk2.0-02.24.32-4ubuntu4
libgtk2.0-common2.24.32-4ubuntu4
libgtk-3-03.24.20-0ubuntu1.1
libgtk-3-common3.24.20-0ubuntu1.1
libgtksourceview-3.0-13.24.11-2
libgtksourceview-3.0-common3.24.11-2
libgudev-1.0-01:233-1
libharfbuzz0b2.6.4-1ubuntu4
libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1
libheimbase1-heimdal7.7.0+dfsg-1ubuntu1
libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1
libhogweed53.5.1+really3.5.1-2ubuntu0.2
libhx509-5-heimdal7.7.0+dfsg-1ubuntu1
libice62:1.0.10-0ubuntu1
libicu6666.1-2ubuntu2.1
libidn2-02.2.0-2
libindicator3-716.10.0+18.04.20180321.1-0ubuntu4
libip4tc21.8.4-3ubuntu2
libisl220.22.1-1
libjack-jackd2-01.9.12~dfsg-2ubuntu2
libjbig02.1-3.1build1
libjpeg88c-2ubuntu8
libjpeg-turbo82.0.3-0ubuntu1.20.04.1
libjson-c40.13.1+dfsg-7ubuntu0.3
libjson-glib-1.0-01.4.4-2ubuntu2
libjson-glib-1.0-common1.4.4-2ubuntu2
libk5crypto31.17-6ubuntu4.1
libkeybinder-3.0-00.3.2-1ubuntu1
libkeyutils11.6-6ubuntu1
libkmod227-1ubuntu2
libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1
libkrb5-31.17-6ubuntu4.1
libkrb5support01.17-6ubuntu4.1
libksba81.3.5-2
liblcms2-22.9-4
libldap-2.4-22.4.49+dfsg-2ubuntu1.8
libldap-common2.4.49+dfsg-2ubuntu1.8
liblightdm-gobject-1-01.30.0-0ubuntu4~20.04.2
libllvm121:12.0.0-3ubuntu1~20.04.4
liblmdb00.9.24-1
liblocale-gettext-perl1.07-4
libltdl72.4.6-14
liblz4-11.9.2-2ubuntu0.20.04.1
liblzma55.2.4-1ubuntu1
libmount12.34-0.1ubuntu9.3
libmpc31.1.0-1
libmpdec22.4.2-3
libmpfr64.0.2-1
libncurses66.2-0ubuntu2
libncursesw66.2-0ubuntu2
libnettle73.5.1+really3.5.1-2ubuntu0.2
libnewt0.520.52.21-4ubuntu2
libnghttp2-141.40.0-1build1
libnotify40.7.9-1ubuntu2
libnpth01.6-1
libogg01.3.4-0ubuntu1
libopus01.3.1-0ubuntu1
liborc-0.4-01:0.4.31-1
libp11-kit00.23.20-1ubuntu0.1
libpackagekit-glib2-181.1.13-2ubuntu1.1
libpam0g1.3.1-5ubuntu4.3
libpam-modules1.3.1-5ubuntu4.3
libpam-modules-bin1.3.1-5ubuntu4.3
libpam-runtime1.3.1-5ubuntu4.3
libpam-systemd245.4-4ubuntu3.15
libpango-1.0-01.44.7-2ubuntu4
libpangocairo-1.0-01.44.7-2ubuntu4
libpangoft2-1.0-01.44.7-2ubuntu4
libpciaccess00.16-0ubuntu1
libpcre2-8-010.34-7
libpcre32:8.39-12build1
libpipeline11.5.2-2build1
libpixman-1-00.38.4-0ubuntu1
libplymouth50.9.4git20200323-0ubuntu6.2
libpng16-161.6.37-2
libpolkit-agent-1-00.105-26ubuntu1.3
libpolkit-gobject-1-00.105-26ubuntu1.3
libprocps82:3.3.16-1ubuntu2.3
libproxy1v50.4.15-10ubuntu1.2
libpsl50.21.0-1ubuntu1
libpthread-stubs0-dev0.4-1
libpulse01:13.99.1-1ubuntu3.13
libpulsedsp1:13.99.1-1ubuntu3.13
libpulse-mainloop-glib01:13.99.1-1ubuntu3.13
libpython3.8-minimal3.8.10-0ubuntu1~20.04.2
libpython3.8-stdlib3.8.10-0ubuntu1~20.04.2
libpython3-stdlib3.8.2-0ubuntu2
libreadline88.0-4
librest-0.7-00.8.1-1
libroken18-heimdal7.7.0+dfsg-1ubuntu1
librsvg2-22.48.9-1ubuntu0.20.04.1
librsvg2-common2.48.9-1ubuntu0.20.04.1
librtmp12.4+20151223.gitfa8646d.1-2build1
libsamplerate00.1.9-2
libsasl2-22.1.27+dfsg-2ubuntu0.1
libsasl2-modules2.1.27+dfsg-2ubuntu0.1
libsasl2-modules-db2.1.27+dfsg-2ubuntu0.1
libseccomp22.5.1-1ubuntu1~20.04.2
libselinux13.0-1build2
libsemanage13.0-1build2
libsemanage-common3.0-1build2
libsensors51:3.6.0-2ubuntu1
libsensors-config1:3.6.0-2ubuntu1
libsepol13.0-1
libsigsegv22.12-2
libslang22.3.2-4
libsm62:1.2.3-1
libsmartcols12.34-0.1ubuntu9.3
libsnapd-glib11.58-0ubuntu0.20.04.0
libsndfile11.0.28-7ubuntu0.1
libsoup2.4-12.70.0-1
libsoup-gnome2.4-12.70.0-1
libsoxr00.1.3-2build1
libspeexdsp11.2~rc1.2-1.1ubuntu1.20.04.1
libsqlite3-03.31.1-4ubuntu0.2
libss21.45.5-2ubuntu1
libssh-40.9.3-2ubuntu2.2
libssl1.11.1.1f-1ubuntu2.10
libstartup-notification00.12-6
libstdc++610.3.0-1ubuntu1~20.04
libstemmer0d0+svn585-2
libsystemd0245.4-4ubuntu3.15
libtasn1-64.16.0-2
libtdb11.4.3-0ubuntu0.20.04.1
libthai00.1.28-3
libthai-data0.1.28-3
libthunarx-3-01.8.14-0ubuntu1
libtiff54.1.0+git191117-2ubuntu0.20.04.2
libtinfo66.2-0ubuntu2
libuchardet00.0.6-3build1
libudev1245.4-4ubuntu3.15
libunistring20.9.10-2
libunwind81.2.1-9build1
libupower-glib30.99.11-1build2
libutempter01.1.6-4
libuuid12.34-0.1ubuntu9.3
libvorbis0a1.3.6-2ubuntu1
libvorbisenc21.3.6-2ubuntu1
libvte-2.91-00.60.3-0ubuntu1~20.04
libvte-2.91-common0.60.3-0ubuntu1~20.04
libvulkan11.2.131.2-1
libwayland-client01.18.0-1
libwayland-cursor01.18.0-1
libwayland-egl11.18.0-1
libwayland-server01.18.0-1
libwebp60.6.1-2ubuntu0.20.04.1
libwebrtc-audio-processing10.3.1-0ubuntu3
libwind0-heimdal7.7.0+dfsg-1ubuntu1
libwnck-3-03.36.0-1
libwnck-3-common3.36.0-1
libwrap07.6.q-30
libx11-62:1.6.9-2ubuntu1.2
libx11-data2:1.6.9-2ubuntu1.2
libx11-dev2:1.6.9-2ubuntu1.2
libx11-xcb12:1.6.9-2ubuntu1.2
libxau61:1.0.9-0ubuntu1
libxau-dev1:1.0.9-0ubuntu1
libxaw72:1.0.13-1
libxcb11.14-2
libxcb1-dev1.14-2
libxcb-dri2-01.14-2
libxcb-dri3-01.14-2
libxcb-glx01.14-2
libxcb-present01.14-2
libxcb-render01.14-2
libxcb-shape01.14-2
libxcb-shm01.14-2
libxcb-sync11.14-2
libxcb-util10.4.0-0ubuntu3
libxcb-xfixes01.14-2
libxcomposite11:0.4.5-1
libxcursor11:1.2.0-2
libxdamage11:1.1.5-2
libxdmcp61:1.1.3-0ubuntu1
libxdmcp-dev1:1.1.3-0ubuntu1
libxext62:1.3.4-0ubuntu1
libxfce4panel-2.0-44.14.3-1
libxfce4ui-1-04.14.1-1ubuntu1
libxfce4ui-2-04.14.1-1ubuntu1
libxfce4ui-common4.14.1-1ubuntu1
libxfce4ui-utils4.14.1-1ubuntu1
libxfce4util74.14.0-1
libxfce4util-common4.14.0-1
libxfconf-0-34.14.1-1
libxfixes31:5.0.3-2
libxfont21:2.0.3-1
libxft22.3.3-0ubuntu1
libxi62:1.7.10-0ubuntu1
libxinerama12:1.1.4-2
libxkbcommon00.10.0-1
libxkbfile11:1.1.0-1
libxklavier165.4-4
libxml22.9.10+dfsg-5ubuntu0.20.04.1
libxmu62:1.1.3-0ubuntu1
libxmuu12:1.1.3-0ubuntu1
libxpm41:3.5.12-1
libxpresent11.0.0-2build1
libxrandr22:1.5.2-0ubuntu1
libxrender11:0.9.10-1
libxres12:1.2.0-4
libxshmfence11.3-1
libxss11:1.2.3-1
libxt61:1.1.5-1
libxtst62:1.2.3-1
libxv12:1.0.11-1
libxvmc12:1.0.12-2
libxxf86dga12:1.1.5-0ubuntu1
libxxf86vm11:1.1.4-1build1
libyaml-0-20.2.2-1
libzstd11.4.4+dfsg-3ubuntu0.1
lightdm-gtk-greeter2.0.6-0ubuntu1
locales2.31-0ubuntu9.2
login1:4.8.1-1ubuntu5.20.04.1
logsave1.45.5-2ubuntu1
lsb-base11.1.0ubuntu2
lsb-release11.1.0ubuntu2
man-db2.9.1-1
mawk1.3.4.20200120-2
mime-support3.64ubuntu1
mount2.34-0.1ubuntu9.3
mousepad0.4.2-1
ncurses-base6.2-0ubuntu2
ncurses-bin6.2-0ubuntu2
numix-gtk-theme2.6.7-5
openssh-client1:8.2p1-4ubuntu0.4
openssl1.1.1f-1ubuntu2.10
packagekit1.1.13-2ubuntu1.1
passwd1:4.8.1-1ubuntu5.20.04.1
perl-base5.30.0-9ubuntu0.2
pinentry-curses1.1.0-3build1
plymouth0.9.4git20200323-0ubuntu6.2
plymouth-label0.9.4git20200323-0ubuntu6.2
plymouth-theme-ubuntu-text0.9.4git20200323-0ubuntu6.2
plymouth-theme-xubuntu-logo20.04.2
plymouth-theme-xubuntu-text20.04.2
policykit-10.105-26ubuntu1.3
procps2:3.3.16-1ubuntu2.3
publicsuffix20200303.0012-1
pulseaudio1:13.99.1-1ubuntu3.13
pulseaudio-utils1:13.99.1-1ubuntu3.13
python33.8.2-0ubuntu2
python3.83.8.10-0ubuntu1~20.04.2
python3.8-minimal3.8.10-0ubuntu1~20.04.2
python3-apt2.0.0ubuntu0.20.04.7
python3-certifi2019.11.28-1
python3-chardet3.0.4-4build1
python3-dbus1.2.16-1build1
python3-gi3.36.0-1
python3-idna2.8-1
python3-minimal3.8.2-0ubuntu2
python3-pkg-resources45.2.0-1
python3-requests2.22.0-2ubuntu1
python3-requests-unixsocket0.2.0-2
python3-six1.14.0-2
python3-software-properties0.99.9.8
python3-urllib31.25.8-2ubuntu0.1
python-apt-common2.0.0ubuntu0.20.04.7
readline-common8.0-4
sed4.7-1
sensible-utils0.0.12+nmu1
shared-mime-info1.15-1
shimmer-themes2.1.3
software-properties-common0.99.9.8
ssl-cert1.0.39
sudo1.8.31-1ubuntu1.2
systemd245.4-4ubuntu3.15
systemd-sysv245.4-4ubuntu3.15
systemd-timesyncd245.4-4ubuntu3.15
sysvinit-utils2.96-2.1ubuntu1
tar1.30+dfsg-7ubuntu0.20.04.1
thunar1.8.14-0ubuntu1
thunar-data1.8.14-0ubuntu1
tzdata2021e-0ubuntu0.20.04
ubuntu-keyring2020.02.11.4
ubuntu-mono19.04-0ubuntu3
ucf3.0038+nmu1
udev245.4-4ubuntu3.15
util-linux2.34-0.1ubuntu9.3
x11-apps7.7+8
x11-common1:7.7+19ubuntu14
x11proto-core-dev2019.2-1ubuntu1
x11proto-dev2019.2-1ubuntu1
x11-session-utils7.7+4
x11-utils7.7+5
x11-xkb-utils7.7+5
x11-xserver-utils7.7+8
xfce44.14
xfce4-appfinder4.14.0-1
xfce4-panel4.14.3-1
xfce4-pulseaudio-plugin0.4.3-0ubuntu1
xfce4-session4.14.2-0ubuntu1
xfce4-settings4.14.3-0ubuntu1
xfce4-terminal0.8.9.1-1
xfconf4.14.1-1
xfdesktop44.14.2-1
xfdesktop4-data4.14.2-1
xfonts-base1:1.0.5
xfonts-encodings1:1.0.5-0ubuntu1
xfonts-utils1:7.7+6
xfwm44.14.1-0ubuntu1
xkb-data2.29-2
xorg-sgml-doctools1:1.11-1
xorgxrdp1:0.2.12-1
xrdp0.9.12-1
xserver-common2:1.20.13-1ubuntu1~20.04.2
xserver-xorg-core2:1.20.13-1ubuntu1~20.04.2
xserver-xorg-video-amdgpu19.1.0-1
xserver-xorg-video-ati1:19.1.0-1
xserver-xorg-video-intel2:2.99.917+git20200226-1
xserver-xorg-video-radeon1:19.1.0-1
xtrans-dev1.4.0-1
xubuntu-artwork20.04.2
xubuntu-default-settings20.04.4
xubuntu-icon-theme20.04.2
xubuntu-wallpapers20.04.2
xutils1:7.7+19ubuntu14
zlib1g1:1.2.11.dfsg-2ubuntu1.2
acl 2.3.1-2
adobe-source-code-pro-fonts 2.038ro+1.058it+1.018var-1
adwaita-icon-theme 42.0+r1+gc144c3d75-1
alsa-lib 1.2.7.2-1
alsa-topology-conf 1.2.5.1-1
alsa-ucm-conf 1.2.7.2-1
aom 3.4.0-1
archlinux-keyring 20220727-1
argon2 20190702-4
at-spi2-atk 2.38.0-1
at-spi2-core 2.44.1-1
atk 2.38.0-1
atkmm 2.28.3-1
attr 2.5.1-2
audit 3.0.8-1
autoconf 2.71-1
autoconf-archive 1:2022.02.11-1
automake 1.16.5-1
avahi 0.8+22+gfd482a7-3
bash 5.1.016-1
binutils 2.39-2
bison 3.8.2-4
bridge-utils 1.7.1-1
brotli 1.0.9-8
bzip2 1.0.8-4
ca-certificates 20210603-1
ca-certificates-mozilla 3.81-1
ca-certificates-utils 20210603-1
cairo 1.17.6-2
cairomm 1.14.3-2
cantarell-fonts 1:0.303.1-1
confuse 3.3-3
containerd 1.6.8-1
coreutils 9.1-1
cryptsetup 2.5.0-1
curl 7.84.0-2
dav1d 1.0.0-1
db 5.3.28-5
dbus-glib 0.112-2
dbus-x11 1.14.0-2
dbus-x11-docs 1.14.0-2
dconf 0.40.0-1
desktop-file-utils 0.26-2
device-mapper 2.03.16-2
diffutils 3.8-1
dnssec-anchors 20190629-3
docbook-xml 4.5-9
docbook-xsl 1.79.2-7
docker 1:20.10.17-1
doxygen 1.9.3-1
duktape 2.7.0-4
e2fsprogs 1.46.5-4
expat 2.4.8-1
fakeroot 1.29-1
ffmpeg 2:5.1-1
fftw 3.3.10-3
file 5.42-1
filesystem 2021.12.07-1
findutils 4.9.0-1
firefox 103.0.2-1
flac 1.3.4-3
flex 2.6.4-3
fontconfig 2:2.14.0-1
freetype2 2.12.1-1
fribidi 1.0.12-1
fuse-common 3.11.0-1
fuse2 2.9.9-4
gawk 5.1.1-1
gc 8.2.0-3
gcc 12.1.1-4
gcc-libs 12.1.1-4
gdbm 1.23-1
gdk-pixbuf2 2.42.9-1
gettext 0.21-2
giflib 5.2.1-2
git 2.37.2-1
glib-networking 1:2.72.2-1
glib2 2.72.3-1
glibc 2.36-2
glibmm 2.66.4-1
gmp 6.2.1-2
gnupg 2.2.36-1
gnutls 3.7.7-1
gpgme 1.18.0-1
graphite 1:1.3.14-2
grep 3.7-1
groff 1.22.4-7
gsettings-desktop-schemas 42.0-1
gsm 1.0.22-1
gtk-update-icon-cache 1:4.6.7-1
gtk2 2.24.33-2
gtk3 1:3.24.34-1
gtkmm3 3.24.6-1
guile 2.2.7-2
gzip 1.12-1
harfbuzz 5.1.0-1
hicolor-icon-theme 0.17-2
hidapi 0.12.0-1
hwdata 0.361-1
hwloc 2.8.0-1
i3-wm 4.20.1-2
i3status 2.14-1
iana-etc 20220603-1
icu 71.1-1
imlib2 1.9.1-1
iproute2 5.19.0-1
iptables 1:1.8.8-2
iso-codes 4.11.0-1
itstool 1:2.0.7-1
jack2 1.9.21-1
jansson 2.14-2
json-c 0.16-1
json-glib 1.6.6-2
kbd 2.5.1-1
keyutils 1.6.3-1
kmod 30-1
krb5 1.19.3-3
l-smash 2.14.5-2
lame 3.100-4
lcms2 2.13.1-1
ldns 1.8.1-1
leafpad 0.8.18.1-9
less 1:590-1
libarchive 3.6.1-2
libass 0.16.0-1
libassuan 2.5.5-1
libasyncns 1:0.8+r3+g68cd5af-1
libavc1394 0.5.4-4
libbluray 1.3.2-1
libbpf 0.8.1-1
libcanberra 1:0.30+r2+gc0620e4-1
libcap 2.65-1
libcap-ng 0.8.3-1
libcloudproviders 0.3.1-2
libcolord 1.4.6-1
libcups 1:2.4.2-3
libdaemon 0.14-5
libdatrie 0.2.13-1
libdrm 2.4.112-1
libedit 20210910_3.1-1
libelf 0.187-2
libepoxy 1.5.10-1
libev 4.33-1
libevdev 1.13.0-1
libevent 2.1.12-2
libfdk-aac 2.0.2-1
libffi 3.4.2-5
libfontenc 1.1.4-3
libgcrypt 1.10.1-1
libglvnd 1.4.0-3
libgpg-error 1.45-2
libgudev 237-2
libice 1.0.10-4
libidn2 2.3.3-1
libiec61883 1.2.0-6
libinput 1.21.0-1
libisl 0.25-1
libjpeg-turbo 2.1.3-2
libksba 1.6.0-1
libldap 2.6.3-1
libmfx 22.4.4-1
libmnl 1.0.5-1
libmodplug 0.8.9.0-3
libmpc 1.2.1-2
libnetfilter_conntrack 1.0.9-1
libnfnetlink 1.0.2-1
libnftnl 1.2.3-1
libnghttp2 1.48.0-1
libnl 3.7.0-1
libnsl 2.0.0-2
libogg 1.3.5-1
libomxil-bellagio 0.9.3-3
libp11-kit 0.24.1-1
libpcap 1.10.1-2
libpciaccess 0.16-3
libpng 1.6.37-3
libproxy 0.4.18-1
libpsl 0.21.1-1
libpulse 16.1-1
libraw1394 2.1.2-3
librsvg 2:2.54.4-1
libsamplerate 0.2.2-1
libsasl 2.1.28-1
libseccomp 2.5.4-1
libsecret 0.20.5-2
libsigc++ 2.10.8-1
libsm 1.2.3-3
libsndfile 1.1.0-2
libsoup 2.74.2-2
libsoup3 3.0.7-1
libsoxr 0.1.3-2
libssh 0.9.6-1
libssh2 1.10.0-1
libstemmer 2.2.0-2
libsysprof-capture 3.44.0-2
libtasn1 4.18.0-1
libthai 0.1.29-1
libtheora 1.1.1-5
libtiff 4.4.0-3
libtirpc 1.3.3-1
libtool 2.4.7-3
libunistring 1.0-1
libunwind 1.6.2-1
libusb 1.0.26-1
libutempter 1.2.1-3
libva 2.15.0-2
libvdpau 1.5-1
libverto 0.3.2-4
libvorbis 1.3.7-3
libvpx 1.12.0-1
libwacom 2.4.0-1
libwebp 1.2.4-1
libx11 1.8.1-3
libxau 1.0.9-4
libxaw 1.0.14-1
libxcb 1.15-1
libxcomposite 0.4.5-4
libxcrypt 4.4.28-2
libxcursor 1.2.1-1
libxcvt 0.1.2-1
libxdamage 1.1.5-4
libxdmcp 1.1.3-4
libxext 1.3.4-4
libxfixes 6.0.0-1
libxfont2 2.0.5-1
libxft 2.3.4-1
libxi 1.8-1
libxinerama 1.1.4-4
libxkbcommon 1.4.1-1
libxkbcommon-x11 1.4.1-1
libxkbfile 1.1.0-3
libxml2 2.9.14-1
libxmu 1.1.3-3
libxpm 3.5.13-3
libxrandr 1.5.2-4
libxrender 0.9.10-5
libxshmfence 1.3-3
libxslt 1.1.35-1
libxt 1.2.1-1
libxtst 1.2.3-5
libxv 1.0.11-5
libxvmc 1.0.13-1
libxxf86vm 1.1.4-5
linux-api-headers 5.18.15-1
llvm-libs 14.0.6-3
lm_sensors 1:3.6.0.r41.g31d1f125-1
luit 20220111-1
lz4 1:1.9.3-2
lzo 2.10-3
m4 1.4.19-1
mailcap 2.1.53-1
make 4.3-3
mallard-ducktype 1.0.2-8
mesa 22.1.6-1
mpfr 4.1.0.p13-3
mtdev 1.1.6-2
ncurses 6.3-3
nettle 3.8.1-1
noto-fonts 20220607-1
npth 1.6-3
nspr 4.34.1-1
nss 3.82-1
opencore-amr 0.1.6-1
openjpeg2 2.5.0-1
openmpi 4.1.4-1
openpmix 4.1.2-1
openssh 9.0p1-1
openssl 1.1.1.q-1
opus 1.3.1-3
orc 0.4.32-1
p11-kit 0.24.1-1
pacman 6.0.1-7
pacman-mirrorlist 20220724-1
pam 1.5.2-1
pambase 20211210-1
pango 1:1.50.9-1
pangomm 2.46.2-1
patch 2.7.6-8
pavucontrol 1:5.0+r35+g964f298-1
pciutils 3.8.0-2
pcre 8.45-1
pcre2 10.40-1
perl 5.36.0-1
perl-error 0.17029-4
perl-mailtools 2.21-6
perl-timedate 2.33-4
pinentry 1.2.0-1
pixman 0.40.0-2
pkgconf 1.8.0-1
polkit 121-1
popt 1.18-3
procps-ng 3.3.17-1
pulseaudio 16.1-1
python 3.10.6-1
python-lxml 4.9.1-1
rav1e 0.5.1-2
readline 8.1.002-1
rest 0.8.1+r4+ge5ee6ef-1
rtkit 0.13-2
runc 1.1.3-1
sdl2 2.0.22-2
sed 4.8-1
shadow 4.11.1-1
shared-mime-info 2.0+144+g13695c7-1
sound-theme-freedesktop 0.8-5
speex 1.2.1-1
speexdsp 1.2.1-1
sqlite 3.39.2-2
srt 1.5.0-1
startup-notification 0.12-7
sudo 1.9.11.p3-1
svt-av1 1.2.1-1
sysfsutils 2.1.1-1
systemd 251.4-1
systemd-libs 251.4-1
tar 1.34-1
tdb 1.4.7-1
texinfo 6.8-2
tpm2-tss 3.2.0-1
tracker3 3.3.3-1
tzdata 2022b-1
util-linux 2.38.1-1
util-linux-libs 2.38.1-1
v4l-utils 1.22.1-1
vid.stab 1.1-3
vmaf 2.3.1-1
vulkan-icd-loader 1.3.221-1
wayland 1.21.0-1
webrtc-audio-processing 0.3.1-3
which 2.21-5
x264 3:0.164.r3095.baee400-2
x265 3.5-3
xbitmaps 1.1.2-3
xcb-proto 1.15.2-1
xcb-util 0.4.0-4
xcb-util-cursor 0.1.3-4
xcb-util-image 0.4.0-4
xcb-util-keysyms 0.4.0-4
xcb-util-renderutil 0.3.9-4
xcb-util-wm 0.4.1-4
xcb-util-xrm 1.3-2
xf86-input-libinput 1.2.1-1
xf86-video-amdgpu 22.0.0-1
xf86-video-ati 1:19.1.0.r9.g5eba006e-2
xf86-video-intel 1:2.99.917+916+g31486f40-2
xkeyboard-config 2.36-3
xmlto 0.0.28-4
xorg-fonts-encodings 1.0.6-1
xorg-server 21.1.4-1
xorg-server-common 21.1.4-1
xorg-setxkbmap 1.3.3-1
xorg-xkbcomp 1.4.5-1
xorg-xmessage 1.0.6-1
xorg-xrandr 1.5.1-2
xorgproto 2022.2-1
xterm 372-2
xvidcore 1.3.7-2
xz 5.2.6-1
yajl 2.1.0-5
yelp-tools 42.0-1
yelp-xsl 42.0-1
zimg 3.0.4-1
zlib 1:1.2.12-2
zstd 1.5.2-7

View File

@ -5,7 +5,7 @@ project_name: rdesktop
project_url: "http://xrdp.org/"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rdesktop.png"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP.
[{{ project_name|capitalize }}]({{ project_url }}) - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
# supported architectures
@ -17,22 +17,32 @@ available_architectures:
# development version
development_versions: true
development_versions_items:
- { tag: "latest", desc: "XFCE Focal" }
- { tag: "xfce-bionic", desc: "XFCE Bionic" }
- { tag: "kde-focal", desc: "KDE Focal" }
- { tag: "kde-bionic", desc: "KDE Bionic" }
- { tag: "mate-focal", desc: "MATE Focal" }
- { tag: "mate-bionic", desc: "MATE Bionic" }
- { tag: "i3-focal", desc: "i3 Focal" }
- { tag: "i3-bionic", desc: "i3 Bionic" }
- { tag: "openbox-focal", desc: "Openbox Focal" }
- { tag: "openbox-bionic", desc: "Openbox Bionic" }
- { tag: "icewm-focal", desc: "IceWM Focal" }
- { tag: "icewm-bionic", desc: "IceWM Bionic" }
- { tag: "alpine", desc: "XFCE Alpine" }
- { tag: "latest", desc: "XFCE Alpine" }
- { tag: "ubuntu-xfce", desc: "XFCE Ubuntu" }
- { tag: "fedora-xfce", desc: "XFCE Fedora" }
- { tag: "arch-xfce", desc: "XFCE Arch" }
- { tag: "alpine-kde", desc: "KDE Alpine" }
- { tag: "ubuntu-kde", desc: "KDE Ubuntu" }
- { tag: "fedora-kde", desc: "KDE Fedora" }
- { tag: "arch-kde", desc: "KDE Arch" }
- { tag: "alpine-mate", desc: "MATE Alpine" }
- { tag: "ubuntu-mate", desc: "MATE Ubuntu" }
- { tag: "fedora-mate", desc: "MATE Fedora" }
- { tag: "arch-mate", desc: "MATE Arch" }
- { tag: "alpine-i3", desc: "i3 Alpine" }
- { tag: "ubuntu-i3", desc: "i3 Ubuntu" }
- { tag: "fedora-i3", desc: "i3 Fedora" }
- { tag: "arch-i3", desc: "i3 Arch" }
- { tag: "alpine-openbox", desc: "Openbox Alpine" }
- { tag: "ubuntu-openbox", desc: "Openbox Ubuntu" }
- { tag: "fedora-openbox", desc: "Openbox Fedora" }
- { tag: "arch-openbox", desc: "Openbox Arch" }
- { tag: "alpine-icewm", desc: "IceWM Alpine" }
- { tag: "ubuntu-icewm", desc: "IceWM Ubuntu" }
- { tag: "fedora-icewm", desc: "IceWM Fedora" }
- { tag: "arch-icewm", desc: "IceWM Arch" }
# container parameters
privileged: "optional"
param_container_name: "{{ project_name }}"
param_usage_include_vols: false
param_usage_include_ports: true
@ -48,27 +58,57 @@ opt_param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/data", desc: "abc users home directory" }
opt_custom_params:
- { name: "shm-size", name_compose: "shm_size", value: "1gb",desc: "We set this to 1 gig to prevent modern web browsers from crashing" }
opt_security_opt_param: true
opt_security_opt_param_vars:
- { run_var: "seccomp=unconfined", compose_var: "seccomp:unconfined", desc: "For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker" }
opt_param_device_map: true
opt_param_devices:
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "Add this for GL support (Linux hosts only)" }
# application setup block
app_setup_block_enabled: true
app_setup_block: |
**The Default USERNAME and PASSWORD is: abc/abc**
**Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt program**
**Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program**
**The KDE and i3 flavors need to be run in privileged mode to function properly**
You will need a Remote Desktop client to access this container [Wikipedia List](https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software), by default it listens on 3389, but you can change that port to whatever you wish on the host side IE `3390:3389`.
The first thing you should do when you login to the container is to change the abc users password by issuing the `passwd` command.
The first thing you should do when you login to the container is to change the abc users password by issuing the `passwd` command.
**Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the `--security-opt seccomp=unconfined` setting to allow these syscalls or try [podman](https://podman.io/) as they have updated their codebase to support them**
If you ever lose your password you can always reset it by execing into the container as root:
```
docker exec -it rdesktop passwd abc
```
By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a `startwm.sh` executable script in their home directory.
All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.
All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.
## Hardware Acceleration (Ubuntu Container Only)
Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.
### Intel/ATI/AMD
To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer.
```
--device=/dev/dri:/dev/dri
```
We will automatically ensure the abc user inside of the container has the proper permissions to access this device.
### Nvidia
Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here:
https://github.com/NVIDIA/nvidia-docker
We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the container.
### Arm Devices
Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable `dtoverlay=vc4-fkms-v3d` in your usercfg.txt.
# changelog
changelogs:
- { date: "05.03.22:", desc: "Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel." }
- { date: "05.05.21:", desc: "Reduce default packages to their flavor specific basics." }
- { date: "05.04.21:", desc: "Add Alpine flavor." }
- { date: "06.04.20:", desc: "Start PulseAudio in images to support audio" }

View File

@ -1,3 +1,3 @@
#!/bin/bash
/usr/bin/pulseaudio --start
/usr/bin/startxfce4 > /dev/null 2>&1
PULSE_SCRIPT=/etc/xrdp/pulse/default.pa /startpulse.sh &
/usr/bin/i3 > /dev/null 2>&1