Compare commits

...

11 Commits

Author SHA1 Message Date
LinuxServer-CI
f8322ea1c9 Bot Updating Package Versions 2021-05-01 15:34:56 +00:00
LinuxServer-CI
584ec53f64 Bot Updating Package Versions 2021-04-24 11:36:06 -04:00
LinuxServer-CI
60661df213 Bot Updating Package Versions 2021-04-17 16:32:09 +01:00
LinuxServer-CI
c50f05ee4f Bot Updating Templated Files 2021-04-17 11:25:28 -04:00
LinuxServer-CI
8c28362a47 Bot Updating Templated Files 2021-04-17 11:24:11 -04:00
LinuxServer-CI
a01bd442f5 Bot Updating Package Versions 2021-04-10 15:41:51 +00:00
LinuxServer-CI
e2e6224b51 Bot Updating Package Versions 2021-04-05 08:11:55 -04:00
aptalca
aa5da170a7
Merge pull request #19 from linuxserver/alpine-dev
Alpine dev
2021-04-05 08:04:11 -04:00
thelamer
baecbfc43e use midori on 32 bit platform 2021-04-04 19:41:42 -07:00
thelamer
5038b162b7 typo in Dockerfile 2021-04-04 17:06:23 -07:00
thelamer
10b107e333 adding alpine based rdesktop image with XFCE 2021-04-04 17:05:38 -07:00
13 changed files with 469 additions and 707 deletions

View File

@ -24,7 +24,7 @@
## Readme ## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. 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/alpine/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. 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) Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-rdesktop)
@ -96,7 +96,7 @@ If you are proposing additional packages to be added, ensure that you added the
### Testing your changes ### Testing your changes
``` ```bash
git clone https://github.com/linuxserver/docker-rdesktop.git git clone https://github.com/linuxserver/docker-rdesktop.git
cd docker-rdesktop cd docker-rdesktop
docker build \ docker build \
@ -106,15 +106,16 @@ docker build \
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the chagelog ## 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/alpine/root), add an entry to the changelog
```yml ```yml
changelogs: 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/alpine/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------ ------------------------------

View File

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

View File

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

View File

@ -4,25 +4,25 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
package-trigger-master: package-trigger-alpine:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.3 - uses: actions/checkout@v2.3.3
- name: Package Trigger - name: Package Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/alpine'
run: | run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RDESKTOP_MASTER }}" ]; then if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RDESKTOP_ALPINE }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RDESKTOP_MASTER is set; skipping trigger. ****" echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RDESKTOP_ALPINE is set; skipping trigger. ****"
exit 0 exit 0
fi 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/alpine/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****" echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0 exit 0
fi 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 alpine branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RDESKTOP_ALPINE\". ****"
response=$(curl -iX POST \ 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/alpine/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****" echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****" 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:alpine
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -8,21 +8,21 @@ LABEL maintainer="thelamer"
RUN \ RUN \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apt-get update && \ apk add --no-cache \
DEBIAN_FRONTEND=noninteractive \ faenza-icon-theme \
apt-get install --no-install-recommends -y \ faenza-icon-theme-xfce4-appfinder \
faenza-icon-theme-xfce4-panel \
firefox \ firefox \
pavucontrol \ font-noto \
terminator \ mousepad \
setxkbmap \
thunar-volman \
xfce4 \ xfce4 \
xfce4-goodies \ xfce4-terminal && \
xubuntu-default-settings \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
xubuntu-icon-theme && \ xfce4-pulseaudio-plugin && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \ rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/* /tmp/*
# add local files # add local files

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm64v8-focal FROM ghcr.io/linuxserver/baseimage-rdesktop:arm64v8-alpine
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -8,21 +8,21 @@ LABEL maintainer="thelamer"
RUN \ RUN \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apt-get update && \ apk add --no-cache \
DEBIAN_FRONTEND=noninteractive \ faenza-icon-theme \
apt-get install --no-install-recommends -y \ faenza-icon-theme-xfce4-appfinder \
faenza-icon-theme-xfce4-panel \
firefox \ firefox \
pavucontrol \ font-noto \
terminator \ mousepad \
setxkbmap \
thunar-volman \
xfce4 \ xfce4 \
xfce4-goodies \ xfce4-terminal && \
xubuntu-default-settings \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
xubuntu-icon-theme && \ xfce4-pulseaudio-plugin && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \ rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/* /tmp/*
# add local files # add local files

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-rdesktop:arm32v7-focal FROM ghcr.io/linuxserver/baseimage-rdesktop:arm32v7-alpine
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -8,21 +8,21 @@ LABEL maintainer="thelamer"
RUN \ RUN \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apt-get update && \ apk add --no-cache \
DEBIAN_FRONTEND=noninteractive \ faenza-icon-theme \
apt-get install --no-install-recommends -y \ faenza-icon-theme-xfce4-appfinder \
firefox \ faenza-icon-theme-xfce4-panel \
pavucontrol \ font-noto \
terminator \ midori \
mousepad \
setxkbmap \
thunar-volman \
xfce4 \ xfce4 \
xfce4-goodies \ xfce4-terminal && \
xubuntu-default-settings \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
xubuntu-icon-theme && \ xfce4-pulseaudio-plugin && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apt-get autoclean && \
rm -rf \ rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/* /tmp/*
# add local files # add local files

184
Jenkinsfile vendored
View File

@ -23,7 +23,7 @@ pipeline {
DOCKERHUB_IMAGE = 'linuxserver/rdesktop' DOCKERHUB_IMAGE = 'linuxserver/rdesktop'
DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop' DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop'
PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop' PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop'
DIST_IMAGE = 'ubuntu' DIST_IMAGE = 'alpine'
MULTIARCH='true' MULTIARCH='true'
CI='true' CI='true'
CI_WEB='false' CI_WEB='false'
@ -41,7 +41,7 @@ pipeline {
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( 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}':alpine 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( 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' ''', 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' ''',
@ -55,7 +55,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/external_trigger.yml ./.github/workflows/external_trigger_scheduler.yml' env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
} }
script{ script{
env.LS_RELEASE_NUMBER = sh( env.LS_RELEASE_NUMBER = sh(
@ -117,10 +117,10 @@ pipeline {
} }
} }
} }
// If this is a master build use live docker endpoints // If this is a alpine build use live docker endpoints
stage("Set ENV live build"){ stage("Set ENV live build"){
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -129,20 +129,20 @@ pipeline {
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { 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-alpine-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-alpine-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-alpine-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'alpine-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
env.VERSION_TAG = 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.META_TAG = 'alpine-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'alpine-version-' + env.EXT_RELEASE_CLEAN
} }
} }
} }
// If this is a dev build use dev docker endpoints // If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){ stage("Set ENV dev build"){
when { when {
not {branch "master"} not {branch "alpine"}
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -151,13 +151,13 @@ pipeline {
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { 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-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'alpine-' + 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.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.META_TAG = 'alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'alpine-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
} }
} }
@ -173,13 +173,13 @@ pipeline {
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { 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-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'alpine-' + 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.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.META_TAG = 'alpine-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'alpine-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST 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/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
} }
@ -217,7 +217,7 @@ pipeline {
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
expression { expression {
env.CONTAINER_NAME != null env.CONTAINER_NAME != null
@ -228,13 +228,13 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest 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=alpine -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update # Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f alpine
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile git add Jenkinsfile
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
@ -257,7 +257,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f alpine
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
for i in ${TEMPLATES_TO_DELETE}; do for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}" git rm "${i}"
@ -279,7 +279,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f alpine
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@ -305,22 +305,24 @@ pipeline {
git commit -m 'Bot Updating Documentation' git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi fi
mkdir -p ${TEMPDIR}/unraid mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi fi
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 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 if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, skipping Unraid template upload" echo "Image is on the ignore list, removing Unraid template"
git rm unraid/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Removing Deprecated Unraid Template' || :
else else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
cd ${TEMPDIR}/unraid/templates/
git add unraid/${CONTAINER_NAME}.xml git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template' git commit -m 'Bot Updating Unraid Template'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi fi
rm -Rf ${TEMPDIR}''' rm -Rf ${TEMPDIR}'''
script{ script{
@ -333,7 +335,7 @@ pipeline {
// Exit the build if the Templated files were just updated // Exit the build if the Templated files were just updated
stage('Template-exit') { stage('Template-exit') {
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true' environment name: 'FILES_UPDATED', value: 'true'
expression { expression {
@ -377,8 +379,21 @@ pipeline {
} }
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \ sh "docker build \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-rdesktop/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-rdesktop\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-rdesktop\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--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. \" \
--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} ."
} }
} }
// Build MultiArch Docker containers for push to LS Repo // Build MultiArch Docker containers for push to LS Repo
@ -391,8 +406,21 @@ pipeline {
stage('Build X86') { stage('Build X86') {
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ sh "docker build \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-rdesktop/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-rdesktop\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-rdesktop\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--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. \" \
--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} ."
} }
} }
stage('Build ARMHF') { stage('Build ARMHF') {
@ -405,8 +433,21 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
''' '''
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ sh "docker build \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-rdesktop/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-rdesktop\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-rdesktop\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--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. \" \
--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}" sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
@ -426,8 +467,21 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
''' '''
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ sh "docker build \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-rdesktop/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-rdesktop\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-rdesktop\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--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. \" \
--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}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
@ -442,7 +496,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison // Take the image we just built and dump package versions for comparison
stage('Update-packages') { stage('Update-packages') {
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@ -470,7 +524,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" 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 if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} 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 alpine
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/
wait wait
@ -494,7 +548,7 @@ pipeline {
// Exit the build if the package file was just updated // Exit the build if the package file was just updated
stage('PACKAGE-exit') { stage('PACKAGE-exit') {
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -515,7 +569,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push // Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') { stage('PACKAGECHECK-exit') {
when { when {
branch "master" branch "alpine"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -611,9 +665,9 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:alpine
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
docker push ${PUSHIMAGE}:latest docker push ${PUSHIMAGE}:alpine
docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
done done
@ -624,7 +678,7 @@ pipeline {
docker rmi \ docker rmi \
${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || : ${DELETEIMAGE}:alpine || :
done done
''' '''
} }
@ -661,25 +715,25 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-alpine
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-alpine
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-alpine
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} 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}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest docker push ${MANIFESTIMAGE}:amd64-alpine
docker push ${MANIFESTIMAGE}:arm32v7-latest docker push ${MANIFESTIMAGE}:arm32v7-alpine
docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:arm64v8-alpine
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:latest || : docker manifest push --purge ${MANIFESTIMAGE}:alpine || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest docker manifest create ${MANIFESTIMAGE}:alpine ${MANIFESTIMAGE}:amd64-alpine ${MANIFESTIMAGE}:arm32v7-alpine ${MANIFESTIMAGE}:arm64v8-alpine
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:alpine ${MANIFESTIMAGE}:arm32v7-alpine --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:alpine ${MANIFESTIMAGE}:arm64v8-alpine --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : 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 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 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
@ -688,7 +742,7 @@ pipeline {
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:alpine
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
done done
@ -698,13 +752,13 @@ pipeline {
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \ ${DELETEIMAGE}:amd64-alpine \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \ ${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \ ${DELETEIMAGE}:arm32v7-alpine \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \ ${DELETEIMAGE}:arm64v8-alpine \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
done done
docker rmi \ docker rmi \
@ -717,7 +771,7 @@ pipeline {
// If this is a public release tag it in the LS Github // If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') { stage('Github-Tag-Push-Release') {
when { when {
branch "master" branch "alpine"
expression { expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@ -729,17 +783,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\ -d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\ "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 alpine",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\ echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\ "target_commitish": "alpine",\
"name": "'${META_TAG}'",\ "name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**OS Changes:**\\n\\n' > start "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 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''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
} }
@ -763,7 +817,7 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/readme-sync docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \ docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \ -e DOCKERHUB_USERNAME=$DOCKERUSER \

View File

@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the CONTRIBUTING.md --> <!-- Please read the https://github.com/linuxserver/docker-rdesktop/blob/alpine/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@ -12,13 +12,14 @@
The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring: The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
* regular and timely application updates * regular and timely application updates
* easy user mappings (PGID, PUID) * easy user mappings (PGID, PUID)
* custom base image with s6 overlay * custom base image with s6 overlay
* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth * weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
* regular security updates * regular security updates
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
@ -35,12 +36,11 @@ Find us at:
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/rdesktop.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/rdesktop "Get your own version badge on microbadger.com") [![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/rdesktop.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/rdesktop "Get your own version badge on microbadger.com")
[![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 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) [![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%2Falpine%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rdesktop/job/alpine/)
[![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) [![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/) - Ubuntu based containers containing full desktop environments in officially supported flavors accessible via RDP.
[![rdesktop](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rdesktop.png)](http://xrdp.org/) [![rdesktop](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rdesktop.png)](http://xrdp.org/)
## Supported Architectures ## Supported Architectures
@ -75,6 +75,24 @@ This image provides various versions that are available via tags. `latest` tag u
| openbox-bionic | Openbox Bionic | | openbox-bionic | Openbox Bionic |
| icewm-focal | IceWM Focal | | icewm-focal | IceWM Focal |
| icewm-bionic | IceWM Bionic | | icewm-bionic | IceWM Bionic |
| alpine | XFCE Alpine |
## 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**
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.
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.
## Usage ## Usage
@ -107,7 +125,7 @@ services:
### docker cli ### docker cli
``` ```bash
docker run -d \ docker run -d \
--name=rdesktop \ --name=rdesktop \
--privileged `#optional` \ --privileged `#optional` \
@ -122,7 +140,6 @@ docker run -d \
ghcr.io/linuxserver/rdesktop ghcr.io/linuxserver/rdesktop
``` ```
## Parameters ## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
@ -143,7 +160,7 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example: As an example:
``` ```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword -e FILE__PASSWORD=/run/secrets/mysecretpassword
``` ```
@ -162,37 +179,17 @@ Ensure any volume directories on the host are owned by the same user you specify
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below: In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
``` ```bash
$ id username $ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
``` ```
&nbsp;
## 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**
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.
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.
## Docker Mods ## Docker Mods
[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=rdesktop&query=%24.mods%5B%27rdesktop%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=rdesktop "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.") [![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=rdesktop&query=%24.mods%5B%27rdesktop%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=rdesktop "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
## Support Info ## Support Info
* Shell access whilst the container is running: `docker exec -it rdesktop /bin/bash` * Shell access whilst the container is running: `docker exec -it rdesktop /bin/bash`
@ -209,6 +206,7 @@ Most of our images are static, versioned, and require an image update and contai
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update all images: `docker-compose pull` * Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull rdesktop` * or update a single image: `docker-compose pull rdesktop`
* Let compose update all containers as necessary: `docker-compose up -d` * Let compose update all containers as necessary: `docker-compose up -d`
@ -216,6 +214,7 @@ Below are the instructions for updating containers:
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/rdesktop` * Update the image: `docker pull ghcr.io/linuxserver/rdesktop`
* Stop the running container: `docker stop rdesktop` * Stop the running container: `docker stop rdesktop`
* Delete the container: `docker rm rdesktop` * Delete the container: `docker rm rdesktop`
@ -223,24 +222,29 @@ Below are the instructions for updating containers:
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (only use if you don't remember the original parameters) ### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run: * Pull the latest image at its tag and replace it with the same env variables in one run:
```
```bash
docker run --rm \ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \ containrrr/watchtower \
--run-once rdesktop --run-once rdesktop
``` ```
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). **Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. * We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic: If you want to make local modifications to these images for development purposes or just to customize the logic:
```
```bash
git clone https://github.com/linuxserver/docker-rdesktop.git git clone https://github.com/linuxserver/docker-rdesktop.git
cd docker-rdesktop cd docker-rdesktop
docker build \ docker build \
@ -250,7 +254,8 @@ docker build \
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```

View File

@ -3,9 +3,9 @@
# jenkins variables # jenkins variables
project_name: docker-rdesktop project_name: docker-rdesktop
external_type: os external_type: os
release_type: stable release_type: prerelease
release_tag: latest release_tag: alpine
ls_branch: master ls_branch: alpine
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'OS_VERSION' - BUILD_VERSION_ARG = 'OS_VERSION'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
@ -14,7 +14,7 @@ repo_vars:
- DOCKERHUB_IMAGE = 'linuxserver/rdesktop' - DOCKERHUB_IMAGE = 'linuxserver/rdesktop'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop' - DEV_DOCKERHUB_IMAGE = 'lsiodev/rdesktop'
- PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop' - PR_DOCKERHUB_IMAGE = 'lspipepr/rdesktop'
- DIST_IMAGE = 'ubuntu' - DIST_IMAGE = 'alpine'
- MULTIARCH='true' - MULTIARCH='true'
- CI='true' - CI='true'
- CI_WEB='false' - CI_WEB='false'

View File

@ -1,548 +1,249 @@
adduser3.118ubuntu2 alpine-baselayout-3.2.0-r8
adwaita-icon-theme3.36.1-2ubuntu0.20.04.2 alpine-keys-2.2-r0
apt2.0.4 alsa-lib-1.2.4-r2
apt-transport-https2.0.4 alsa-plugins-pulse-1.2.2-r1
apt-utils2.0.4 apk-tools-2.12.5-r0
base-files11ubuntu5.3 at-spi2-atk-2.38.0-r0
base-passwd3.5.47 at-spi2-core-2.38.0-r0
bash5.0-6ubuntu1.1 atk-2.36.0-r0
bsdmainutils11.1.2ubuntu3 atkmm-2.28.0-r1
bsdutils1:2.34-0.1ubuntu9.1 avahi-libs-0.8-r2
bzip21.0.8-2 bash-5.1.0-r0
ca-certificates20210119~20.04.1 brotli-libs-1.0.9-r3
coreutils8.30-3ubuntu2 busybox-1.32.1-r6
cpp4:9.3.0-1ubuntu2 ca-certificates-20191127-r5
cpp-99.3.0-17ubuntu1~20.04 ca-certificates-bundle-20191127-r5
curl7.68.0-1ubuntu2.5 cairo-1.16.0-r2
dash0.5.10.2-6 cairo-gobject-1.16.0-r2
dbus1.12.16-2ubuntu2.1 cairomm-1.14.0-r0
dbus-user-session1.12.16-2ubuntu2.1 containerd-1.4.4-r0
dbus-x111.12.16-2ubuntu2.1 coreutils-8.32-r2
dconf-gsettings-backend0.36.0-1 cups-libs-2.3.3-r1
dconf-service0.36.0-1 dbus-1.12.20-r1
debconf1.5.73 dbus-glib-0.110-r0
debianutils4.9.1 dbus-libs-1.12.20-r1
desktop-file-utils0.24-1ubuntu3 dbus-x11-1.12.20-r1
diffutils1:3.7-3 desktop-file-utils-0.26-r0
dirmngr2.2.19-3ubuntu2.1 device-mapper-libs-2.02.187-r1
distro-info-data0.43ubuntu1.4 docker-20.10.3-r1
docker-ce-cli5:20.10.5~3-0~ubuntu-bionic docker-cli-20.10.3-r1
dpkg1.19.7ubuntu3 docker-engine-20.10.3-r1
e2fsprogs1.45.5-2ubuntu1 encodings-1.0.5-r0
elementary-xfce-icon-theme0.15-1 eudev-libs-3.2.9-r3
exo-utils0.12.11-1ubuntu1.20.04.1 exo-4.16.0-r0
fdisk2.34-0.1ubuntu9.1 exo-libs-4.16.0-r0
findutils4.7.0-1ubuntu1 expat-2.2.10-r1
firefox87.0+build3-0ubuntu0.20.04.2 faenza-icon-theme-1.3.1-r6
fontconfig2.13.1-2ubuntu3 faenza-icon-theme-bash-1.3.1-r6
fontconfig-config2.13.1-2ubuntu3 faenza-icon-theme-firefox-1.3.1-r6
fonts-dejavu-core2.37-1 faenza-icon-theme-thunar-1.3.1-r6
fonts-noto-core20200323-1build1~ubuntu20.04.1 faenza-icon-theme-xfce4-appfinder-1.3.1-r6
fonts-noto-hinted20200323-1build1~ubuntu20.04.1 faenza-icon-theme-xfce4-panel-1.3.1-r6
fonts-noto-ui-core20200323-1build1~ubuntu20.04.1 faenza-icon-theme-xterm-1.3.1-r6
fonts-ubuntu0.83-4ubuntu1 firefox-88.0-r0
gawk1:5.0.1+dfsg-1 flac-1.3.3-r0
gcc-10-base10.2.0-5ubuntu1~20.04 font-alias-1.0.3-r1
gcc-9-base9.3.0-17ubuntu1~20.04 font-cursor-misc-1.0.3-r1
gir1.2-atk-1.02.35.1-1ubuntu2 font-misc-misc-1.1.2-r1
gir1.2-freedesktop1.64.1-1~ubuntu20.04.1 font-noto-0_git20190623-r2
gir1.2-gdkpixbuf-2.02.40.0+dfsg-3ubuntu0.2 fontconfig-2.13.1-r3
gir1.2-glib-2.01.64.1-1~ubuntu20.04.1 freetype-2.10.4-r1
gir1.2-gtk-3.03.24.20-0ubuntu1 fribidi-1.0.10-r0
gir1.2-packagekitglib-1.01.1.13-2ubuntu1.1 fuse-2.9.9-r1
gir1.2-pango-1.01.44.7-2ubuntu4 fuse-common-3.10.2-r0
gir1.2-vte-2.910.60.3-0ubuntu1~20.04 garcon-0.8.0-r0
glib-networking2.64.2-1ubuntu0.1 gdk-pixbuf-2.42.4-r0
glib-networking-common2.64.2-1ubuntu0.1 glib-2.66.8-r0
glib-networking-services2.64.2-1ubuntu0.1 glibmm-2.64.5-r0
gnupg2.2.19-3ubuntu2.1 gmp-6.2.1-r0
gnupg22.2.19-3ubuntu2.1 gnutls-3.7.1-r0
gnupg-l10n2.2.19-3ubuntu2.1 graphite2-1.3.14-r0
gnupg-utils2.2.19-3ubuntu2.1 gtk+3.0-3.24.23-r2
gpg2.2.19-3ubuntu2.1 gtk-update-icon-cache-2.24.33-r0
gpg-agent2.2.19-3ubuntu2.1 gtkmm3-3.24.3-r0
gpgconf2.2.19-3ubuntu2.1 gtksourceview-3.24.11-r1
gpgsm2.2.19-3ubuntu2.1 harfbuzz-2.7.4-r1
gpgv2.2.19-3ubuntu2.1 hicolor-icon-theme-0.17-r1
gpg-wks-client2.2.19-3ubuntu2.1 iceauth-1.0.8-r0
gpg-wks-server2.2.19-3ubuntu2.1 icu-libs-67.1-r2
grep3.4-1 ip6tables-1.8.6-r0
greybird-gtk-theme3.22.12-0ubuntu1 iptables-1.8.6-r0
groff-base1.22.4-4build1 iso-codes-4.5.0-r0
gsettings-desktop-schemas3.36.0-1ubuntu1 lcms2-2.11-r0
gtk2-engines-murrine0.98.2-3 libacl-2.2.53-r0
gtk-update-icon-cache3.24.20-0ubuntu1 libasyncns-0.8-r1
gzip1.10-0ubuntu4 libattr-2.4.48-r0
hicolor-icon-theme0.17-2 libblkid-2.36.1-r1
hostname3.23 libbsd-0.10.0-r0
humanity-icon-theme0.6.15 libbz2-1.0.8-r1
init-system-helpers1.57 libc-utils-0.7.2-r3
iso-codes4.4-1 libcanberra-0.30-r5
keyboard-configuration1.194ubuntu3 libcanberra-gtk3-0.30-r5
krb5-locales1.17-6ubuntu4.1 libcanberra-pulse-0.30-r5
libacl12.2.53-6 libcap-2.46-r0
libapparmor12.13.3-7ubuntu5.1 libcrypto1.1-1.1.1k-r0
libappstream40.12.10-2 libcurl-7.76.1-r0
libapt-pkg6.02.0.4 libdrm-2.4.104-r0
libargon2-10~20171227-0.2 libedit-20191231.3.1-r1
libasn1-8-heimdal7.7.0+dfsg-1ubuntu1 libepoxy-1.5.5-r0
libasound21.2.2-2.1ubuntu2.3 libevent-2.1.12-r1
libasound2-data1.2.2-2.1ubuntu2.3 libexif-0.6.22-r0
libasound2-plugins1.2.2-1ubuntu1 libffi-3.3-r2
libassuan02.5.3-7ubuntu2 libfontenc-1.1.4-r0
libasyncns00.8-6 libgcc-10.2.1_pre1-r3
libatk1.0-02.35.1-1ubuntu2 libgomp-10.2.1_pre1-r3
libatk1.0-data2.35.1-1ubuntu2 libgtop-2.40.0-r0
libatk-bridge2.0-02.34.2-0ubuntu2~20.04.1 libgudev-234-r0
libatkmm-1.6-1v52.28.0-2build1 libice-1.0.10-r0
libatspi2.0-02.36.0-2 libintl-0.20.2-r2
libattr11:2.4.48-5 libjpeg-turbo-2.1.0-r0
libaudit11:2.8.5-2ubuntu6 libltdl-2.4.6-r7
libaudit-common1:2.8.5-2ubuntu6 libmnl-1.0.4-r1
libavahi-client30.7-4ubuntu7 libmount-2.36.1-r1
libavahi-common30.7-4ubuntu7 libnftnl-libs-1.1.8-r0
libavahi-common-data0.7-4ubuntu7 libnotify-0.7.9-r1
libblkid12.34-0.1ubuntu9.1 libogg-1.3.4-r0
libbrotli11.0.7-6ubuntu0.1 libpciaccess-0.16-r0
libbsd00.10.0-1 libpng-1.6.37-r1
libburn41.5.2-1 libproc-3.3.16-r0
libbz2-1.01.0.8-2 libpulse-14.1-r0
libc62.31-0ubuntu9.2 libpulse-mainloop-glib-14.1-r0
libcairo21.16.0-4ubuntu1 libseccomp-2.5.1-r1
libcairo-gobject21.16.0-4ubuntu1 libsigc++-2.10.6-r0
libcairomm-1.0-1v51.12.2-4build1 libsm-1.2.3-r0
libcanberra00.30-7ubuntu1 libsndfile-1.0.29-r1
libcanberra-gtk3-00.30-7ubuntu1 libssl1.1-1.1.1k-r0
libcap21:2.32-1 libstdc++-10.2.1_pre1-r3
libcap2-bin1:2.32-1 libtasn1-4.16.0-r1
libcap-ng00.7.9-2.1build1 libtls-standalone-2.9.1-r1
libc-bin2.31-0ubuntu9.2 libunistring-0.9.10-r0
libcolord21.4.4-2 libusb-1.0.24-r1
libcom-err21.45.5-2ubuntu1 libuuid-2.36.1-r1
libcrypt11:4.4.10-10ubuntu4 libvorbis-1.3.7-r0
libcryptsetup122:2.2.2-3ubuntu2.3 libvpx-1.9.0-r0
libcups22.3.1-9ubuntu1.1 libwebp-1.1.0-r0
libcurl47.68.0-1ubuntu2.5 libwnck3-3.36.0-r0
libdatrie10.2.12-3 libx11-1.7.0-r0
libdb5.35.3.28+dfsg1-0.6ubuntu2 libxau-1.0.9-r0
libdbus-1-31.12.16-2ubuntu2.1 libxaw-1.0.13-r3
libdbus-glib-1-20.110-5fakssync1 libxcb-1.14-r1
libdconf10.36.0-1 libxcomposite-0.4.5-r0
libdebconfclient00.251ubuntu1 libxcursor-1.2.0-r0
libdevmapper1.02.12:1.02.167-1ubuntu1 libxdamage-1.1.5-r1
libdrm22.4.102-1ubuntu1~20.04.1 libxdmcp-1.1.3-r0
libdrm-amdgpu12.4.102-1ubuntu1~20.04.1 libxext-1.3.4-r0
libdrm-common2.4.102-1ubuntu1~20.04.1 libxfce4ui-4.16.0-r1
libdrm-intel12.4.102-1ubuntu1~20.04.1 libxfce4util-4.16.0-r0
libdrm-nouveau22.4.102-1ubuntu1~20.04.1 libxfixes-5.0.3-r2
libdrm-radeon12.4.102-1ubuntu1~20.04.1 libxfont2-2.0.4-r0
libedit23.1-20191231-1 libxft-2.3.3-r0
libegl11.3.2-1~ubuntu0.20.04.1 libxi-1.7.10-r0
libegl-mesa020.2.6-0ubuntu0.20.04.1 libxinerama-1.1.4-r1
libelf10.176-1.1build1 libxkbcommon-1.0.3-r0
libepoxy01.5.4-1 libxkbfile-1.1.0-r0
libexif120.6.21-6ubuntu0.4 libxklavier-5.4-r5
libexo-1-00.12.11-1ubuntu1.20.04.1 libxml2-2.9.10-r6
libexo-2-00.12.11-1ubuntu1.20.04.1 libxmu-1.1.3-r0
libexo-common0.12.11-1ubuntu1.20.04.1 libxpm-3.5.13-r0
libexo-helpers0.12.11-1ubuntu1.20.04.1 libxpresent-1.0.0-r0
libexpat12.2.9-1build1 libxrandr-1.5.2-r1
libext2fs21.45.5-2ubuntu1 libxrender-0.9.10-r3
libfdisk12.34-0.1ubuntu9.1 libxres-1.2.0-r2
libffi73.3-4 libxshmfence-1.3-r1
libflac81.3.3-1build1 libxt-1.2.1-r0
libfontconfig12.13.1-2ubuntu3 libxtst-1.2.3-r3
libfontenc11:1.1.4-0ubuntu1 libxxf86vm-1.1.4-r2
libfreetype62.10.1-2ubuntu0.1 linux-pam-1.5.1-r0
libfribidi01.0.8-2 mcookie-2.36.1-r1
libfuse22.9.9-3 mesa-20.3.3-r0
libgarcon-1-00.6.4-1 mesa-gbm-20.3.3-r0
libgarcon-common0.6.4-1 mesa-gl-20.3.3-r0
libgarcon-gtk3-1-00.6.4-1 mesa-glapi-20.3.3-r0
libgbm120.2.6-0ubuntu0.20.04.1 mkfontscale-1.2.1-r1
libgcc-s110.2.0-5ubuntu1~20.04 mousepad-0.5.2-r0
libgcrypt201.8.5-5ubuntu1 mozjs78-78.10.0-r0
libgdbm61.18.1-5 musl-1.2.2-r0
libgdk-pixbuf2.0-02.40.0+dfsg-3ubuntu0.2 musl-utils-1.2.2-r0
libgdk-pixbuf2.0-common2.40.0+dfsg-3ubuntu0.2 ncurses-libs-6.2_p20210109-r0
libgirepository-1.0-11.64.1-1~ubuntu20.04.1 ncurses-terminfo-base-6.2_p20210109-r0
libgl11.3.2-1~ubuntu0.20.04.1 nettle-3.7.2-r0
libgl1-mesa-dri20.2.6-0ubuntu0.20.04.1 nghttp2-libs-1.42.0-r1
libglapi-mesa20.2.6-0ubuntu0.20.04.1 nspr-4.29-r0
libglib2.0-02.64.6-1~ubuntu20.04.3 nss-3.63-r1
libglib2.0-bin2.64.6-1~ubuntu20.04.3 openjpeg-2.4.0-r1
libglib2.0-data2.64.6-1~ubuntu20.04.3 openssh-client-8.4_p1-r3
libglibmm-2.4-1v52.64.2-1 openssh-keygen-8.4_p1-r3
libglvnd01.3.2-1~ubuntu0.20.04.1 openssl-1.1.1k-r0
libglx01.3.2-1~ubuntu0.20.04.1 opus-1.3.1-r1
libglx-mesa020.2.6-0ubuntu0.20.04.1 orc-0.4.32-r0
libgmp102:6.2.0+dfsg-4 p11-kit-0.23.22-r0
libgnutls303.6.13-2ubuntu1.3 pango-1.48.2-r0
libgomp110.2.0-5ubuntu1~20.04 pangomm-2.42.2-r0
libgpg-error01.37-1 pavucontrol-4.0-r0
libgraphite2-31.3.13-11build1 pcre-8.44-r0
libgssapi3-heimdal7.7.0+dfsg-1ubuntu1 pcre2-10.36-r0
libgssapi-krb5-21.17-6ubuntu4.1 pixman-0.40.0-r2
libgstreamer1.0-01.16.2-2 pkgconf-1.7.3-r0
libgstreamer-plugins-base1.0-01.16.2-4 polkit-0.118-r0
libgtk2.0-02.24.32-4ubuntu4 poppler-20.12.1-r0
libgtk2.0-common2.24.32-4ubuntu4 poppler-glib-20.12.1-r0
libgtk-3-03.24.20-0ubuntu1 procps-3.3.16-r0
libgtk-3-common3.24.20-0ubuntu1 pulseaudio-14.1-r0
libgtkmm-3.0-1v53.24.2-1build1 pulseaudio-alsa-14.1-r0
libgtksourceview-3.0-13.24.11-2 readline-8.1.0-r0
libgtksourceview-3.0-common3.24.11-2 runc-1.0.0_rc93-r0
libgudev-1.0-01:233-1 s6-ipcserver-2.10.0.0-r0
libharfbuzz0b2.6.4-1ubuntu4 scanelf-1.2.8-r0
libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1 setxkbmap-1.3.2-r0
libheimbase1-heimdal7.7.0+dfsg-1ubuntu1 shadow-4.8.1-r0
libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1 shared-mime-info-2.0-r0
libhogweed53.5.1+really3.5.1-2 skalibs-2.10.0.0-r0
libhx509-5-heimdal7.7.0+dfsg-1ubuntu1 sound-theme-freedesktop-0.8-r0
libice62:1.0.10-0ubuntu1 soxr-0.1.3-r2
libicu6666.1-2ubuntu2 speexdsp-1.2.0-r0
libidn2-02.2.0-2 sqlite-libs-3.34.1-r0
libindicator3-716.10.0+18.04.20180321.1-0ubuntu4 ssl_client-1.32.1-r6
libip4tc21.8.4-3ubuntu2 startup-notification-0.12-r4
libisl220.22.1-1 sudo-1.9.5p2-r0
libisofs61.5.2-1 tdb-libs-1.4.3-r0
libjack-jackd2-01.9.12~dfsg-2ubuntu2 thunar-4.16.2-r0
libjbig02.1-3.1build1 thunar-volman-4.16.0-r0
libjpeg88c-2ubuntu8 tiff-4.2.0-r0
libjpeg-turbo82.0.3-0ubuntu1.20.04.1 tini-static-0.19.0-r0
libjson-c40.13.1+dfsg-7ubuntu0.3 ttf-dejavu-2.37-r1
libjson-glib-1.0-01.4.4-2ubuntu2 tumbler-4.16.0-r0
libjson-glib-1.0-common1.4.4-2ubuntu2 tzdata-2021a-r0
libjte21.22-3build1 upower-0.99.11-r0
libk5crypto31.17-6ubuntu4.1 util-macros-1.19.2-r1
libkeybinder-3.0-00.3.2-1ubuntu1 utmps-0.1.0.0-r0
libkeyutils11.6-6ubuntu1 vte3-0.62.2-r0
libkmod227-1ubuntu2 wayland-libs-client-1.18.0-r5
libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1 wayland-libs-cursor-1.18.0-r5
libkrb5-31.17-6ubuntu4.1 wayland-libs-egl-1.18.0-r5
libkrb5support01.17-6ubuntu4.1 wayland-libs-server-1.18.0-r5
libksba81.3.5-2 xauth-1.1-r0
liblcms2-22.9-4 xcb-util-0.4.0-r3
libldap-2.4-22.4.49+dfsg-2ubuntu1.7 xfce4-4.16-r0
libldap-common2.4.49+dfsg-2ubuntu1.7 xfce4-appfinder-4.16.0-r0
liblightdm-gobject-1-01.30.0-0ubuntu3.1 xfce4-panel-4.16.0-r0
libllvm111:11.0.0-2~ubuntu20.04.1 xfce4-power-manager-4.16.0-r0
liblmdb00.9.24-1 xfce4-pulseaudio-plugin-0.4.3-r0
liblocale-gettext-perl1.07-4 xfce4-session-4.16.0-r0
libltdl72.4.6-14 xfce4-settings-4.16.0-r0
liblz4-11.9.2-2 xfce4-terminal-0.8.9.2-r0
liblzma55.2.4-1ubuntu1 xfconf-4.16.0-r0
libmagic11:5.38-4 xfdesktop-4.16.0-r0
libmagic-mgc1:5.38-4 xfwm4-4.16.1-r0
libmount12.34-0.1ubuntu9.1 xinit-1.4.1-r0
libmpc31.1.0-1 xkbcomp-1.4.4-r0
libmpdec22.4.2-3 xkeyboard-config-2.31-r0
libmpfr64.0.2-1 xmodmap-1.0.10-r0
libncurses66.2-0ubuntu2 xorg-server-1.20.11-r0
libncursesw66.2-0ubuntu2 xorg-server-common-1.20.11-r0
libnettle73.5.1+really3.5.1-2 xorgxrdp-0.2.15-r0
libnewt0.520.52.21-4ubuntu2 xrdb-1.2.0-r1
libnghttp2-141.40.0-1build1 xrdp-0.9.15-r0
libnotify40.7.9-1ubuntu2 xterm-367-r0
libnpth01.6-1 xz-5.2.5-r0
libogg01.3.4-0ubuntu1 xz-libs-5.2.5-r0
libopus01.3.1-0ubuntu1 zlib-1.2.11-r3
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.1
libpam-modules1.3.1-5ubuntu4.1
libpam-modules-bin1.3.1-5ubuntu4.1
libpam-runtime1.3.1-5ubuntu4.1
libpam-systemd245.4-4ubuntu3.5
libpango-1.0-01.44.7-2ubuntu4
libpangocairo-1.0-01.44.7-2ubuntu4
libpangoft2-1.0-01.44.7-2ubuntu4
libpangomm-1.4-1v52.42.0-2build1
libpangoxft-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
libpolkit-gobject-1-00.105-26ubuntu1
libprocps82:3.3.16-1ubuntu2
libproxy1v50.4.15-10ubuntu1.2
libpsl50.21.0-1ubuntu1
libpthread-stubs0-dev0.4-1
libpulse01:13.99.1-1ubuntu3.10
libpulsedsp1:13.99.1-1ubuntu3.10
libpulse-mainloop-glib01:13.99.1-1ubuntu3.10
libpython3.8-minimal3.8.5-1~20.04.2
libpython3.8-stdlib3.8.5-1~20.04.2
libpython3-stdlib3.8.2-0ubuntu2
libqrencode44.0.2-2
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-2
libsasl2-modules2.1.27+dfsg-2
libsasl2-modules-db2.1.27+dfsg-2
libseccomp22.4.3-1ubuntu3.20.04.3
libselinux13.0-1build2
libsemanage13.0-1build2
libsemanage-common3.0-1build2
libsensors51:3.6.0-2ubuntu1
libsensors-config1:3.6.0-2ubuntu1
libsepol13.0-1
libsigc++-2.0-0v52.10.2-1build1
libsigsegv22.12-2
libslang22.3.2-4
libsm62:1.2.3-1
libsmartcols12.34-0.1ubuntu9.1
libsnapd-glib11.58-0ubuntu0.20.04.0
libsndfile11.0.28-7
libsoup2.4-12.70.0-1
libsoup-gnome2.4-12.70.0-1
libsoxr00.1.3-2build1
libspeexdsp11.2~rc1.2-1.1ubuntu1
libsqlite3-03.31.1-4ubuntu0.2
libss21.45.5-2ubuntu1
libssh-40.9.3-2ubuntu2.1
libssl1.11.1.1f-1ubuntu2.3
libstartup-notification00.12-6
libstdc++610.2.0-5ubuntu1~20.04
libstemmer0d0+svn585-2
libsystemd0245.4-4ubuntu3.5
libtag1v51.11.1+dfsg.1-0.3ubuntu2
libtag1v5-vanilla1.11.1+dfsg.1-0.3ubuntu2
libtagc01.11.1+dfsg.1-0.3ubuntu2
libtasn1-64.16.0-2
libtdb11.4.2-3build1
libthai00.1.28-3
libthai-data0.1.28-3
libthunarx-3-01.8.14-0ubuntu1
libtiff54.1.0+git191117-2ubuntu0.20.04.1
libtinfo66.2-0ubuntu2
libuchardet00.0.6-3build1
libudev1245.4-4ubuntu3.5
libunistring20.9.10-2
libunwind81.2.1-9build1
libupower-glib30.99.11-1build2
libutempter01.1.6-4
libuuid12.34-0.1ubuntu9.1
libvorbis0a1.3.6-2ubuntu1
libvorbisenc21.3.6-2ubuntu1
libvorbisfile31.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-2
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.1
libx11-data2:1.6.9-2ubuntu1.1
libx11-dev2:1.6.9-2ubuntu1.1
libx11-xcb12:1.6.9-2ubuntu1.1
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-5
libxmu62:1.1.3-0ubuntu1
libxmuu12:1.1.3-0ubuntu1
libxnvctrl0460.39-0ubuntu0.20.04.1
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
libxt61:1.1.5-1
libxtst62:1.2.3-1
libxv12:1.0.11-1
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
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.1
mousepad0.4.2-1
ncurses-base6.2-0ubuntu2
ncurses-bin6.2-0ubuntu2
numix-gtk-theme2.6.7-5
openssl1.1.1f-1ubuntu2.3
packagekit1.1.13-2ubuntu1.1
passwd1:4.8.1-1ubuntu5.20.04
pavucontrol4.0-1build1
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
procps2:3.3.16-1ubuntu2
publicsuffix20200303.0012-1
pulseaudio1:13.99.1-1ubuntu3.10
pulseaudio-utils1:13.99.1-1ubuntu3.10
python33.8.2-0ubuntu2
python3.83.8.5-1~20.04.2
python3.8-minimal3.8.5-1~20.04.2
python3-apt2.0.0ubuntu0.20.04.4
python3-cairo1.16.2-2ubuntu2
python3-certifi2019.11.28-1
python3-chardet3.0.4-4build1
python3-configobj5.0.6-4
python3-dbus1.2.16-1build1
python3-gi3.36.0-1
python3-gi-cairo3.36.0-1
python3-idna2.8-1
python3-minimal3.8.2-0ubuntu2
python3-pkg-resources45.2.0-1
python3-psutil5.5.1-1ubuntu4
python3-requests2.22.0-2ubuntu1
python3-requests-unixsocket0.2.0-2
python3-six1.14.0-2
python3-software-properties0.98.9.4
python3-urllib31.25.8-2ubuntu0.1
python-apt-common2.0.0ubuntu0.20.04.4
readline-common8.0-4
ristretto0.10.0-1
sed4.7-1
sensible-utils0.0.12+nmu1
shared-mime-info1.15-1
shimmer-themes2.1.3
software-properties-common0.98.9.4
sound-theme-freedesktop0.8-2ubuntu1
ssl-cert1.0.39
sudo1.8.31-1ubuntu1.2
systemd245.4-4ubuntu3.5
systemd-sysv245.4-4ubuntu3.5
systemd-timesyncd245.4-4ubuntu3.5
sysvinit-utils2.96-2.1ubuntu1
tar1.30+dfsg-7ubuntu0.20.04.1
terminator1.91-4ubuntu1
thunar1.8.14-0ubuntu1
thunar-archive-plugin0.4.0-2
thunar-data1.8.14-0ubuntu1
thunar-media-tags-plugin0.3.0-2
tzdata2021a-0ubuntu0.20.04
ubuntu-keyring2020.02.11.2
ubuntu-mono19.04-0ubuntu3
ucf3.0038+nmu1
udev245.4-4ubuntu3.5
util-linux2.34-0.1ubuntu9.1
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
xfburn0.6.2-1
xfce44.14
xfce4-appfinder4.14.0-1
xfce4-battery-plugin1.1.3-1
xfce4-clipman2:1.4.4-1
xfce4-clipman-plugin2:1.4.4-1
xfce4-cpufreq-plugin1.2.1-1
xfce4-cpugraph-plugin1.1.0-1
xfce4-datetime-plugin0.8.0-1
xfce4-dict0.8.3-1
xfce4-diskperf-plugin2.6.2-1
xfce4-fsguard-plugin1.1.1-1
xfce4-genmon-plugin4.0.2-1
xfce4-goodies4.14.0
xfce4-mailwatch-plugin1.2.0-3
xfce4-netload-plugin1.3.2-1
xfce4-notifyd0.4.4-1
xfce4-panel4.14.3-1
xfce4-places-plugin1.8.1-1
xfce4-pulseaudio-plugin0.4.3-0ubuntu1
xfce4-screenshooter1.9.7-1
xfce4-sensors-plugin1.3.0-2build1
xfce4-session4.14.2-0ubuntu1
xfce4-settings4.14.3-0ubuntu1
xfce4-smartbookmark-plugin0.5.1-1
xfce4-systemload-plugin1:1.2.3-1ubuntu1
xfce4-taskmanager1.2.3-0ubuntu1
xfce4-terminal0.8.9.1-1
xfce4-timer-plugin1.7.0-1
xfce4-verve-plugin2.0.0-1
xfce4-wavelan-plugin0.6.1-1
xfce4-weather-plugin0.10.2-0ubuntu0.20.04.1
xfce4-whiskermenu-plugin2.4.3-1
xfce4-xkb-plugin1:0.8.1-2
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.9-2ubuntu1.2~20.04.1
xserver-xorg-core2:1.20.9-2ubuntu1.2~20.04.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

View File

@ -29,6 +29,7 @@ development_versions_items:
- { tag: "openbox-bionic", desc: "Openbox Bionic" } - { tag: "openbox-bionic", desc: "Openbox Bionic" }
- { tag: "icewm-focal", desc: "IceWM Focal" } - { tag: "icewm-focal", desc: "IceWM Focal" }
- { tag: "icewm-bionic", desc: "IceWM Bionic" } - { tag: "icewm-bionic", desc: "IceWM Bionic" }
- { tag: "alpine", desc: "XFCE Alpine" }
# container parameters # container parameters
privileged: "optional" privileged: "optional"