diff --git a/.github/workflows/ubuntu-mate-build.yml b/.github/workflows/debian-mate-build.yml similarity index 86% rename from .github/workflows/ubuntu-mate-build.yml rename to .github/workflows/debian-mate-build.yml index 2322944..1ce61ff 100644 --- a/.github/workflows/ubuntu-mate-build.yml +++ b/.github/workflows/debian-mate-build.yml @@ -11,7 +11,7 @@ on: push: branches: [ "main" ] paths: - - "ubuntu-mate/Dockerfile" + - "debian-mate/Dockerfile" - ".github/workflows/ubuntu-mate-build.yml" # Publish semver tags as releases. tags: [ 'v*.*.*' ] @@ -22,7 +22,7 @@ env: # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io # github.repository as / - IMAGE_NAME: ${{ github.repository }}/containerdesk-ubuntu-mate + IMAGE_NAME: ${{ github.repository }}/containerdesk-debian-mate jobs: @@ -69,8 +69,8 @@ jobs: id: build-and-push uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a with: - context: ./ubuntu-mate - file: ./ubuntu-mate/Dockerfile + context: ./debian-mate + file: ./debian-mate/Dockerfile platforms: linux/amd64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} @@ -78,11 +78,3 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max - keepalive-job: - name: Keepalive Workflow - runs-on: ubuntu-latest - permissions: - actions: write - steps: - - uses: actions/checkout@v4 - - uses: liskin/gh-workflow-keepalive@v1 diff --git a/.github/workflows/ubuntu-xfce-build.yml b/.github/workflows/ubuntu-xfce-build.yml index a09a9eb..d6b4b1a 100644 --- a/.github/workflows/ubuntu-xfce-build.yml +++ b/.github/workflows/ubuntu-xfce-build.yml @@ -77,12 +77,3 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - - keepalive-job: - name: Keepalive Workflow - runs-on: ubuntu-latest - permissions: - actions: write - steps: - - uses: actions/checkout@v4 - - uses: gautamkrishnar/keepalive-workflow@v2 diff --git a/debian-mate/Dockerfile b/debian-mate/Dockerfile new file mode 100644 index 0000000..5258904 --- /dev/null +++ b/debian-mate/Dockerfile @@ -0,0 +1,80 @@ +FROM ghcr.io/linuxserver/baseimage-rdesktop:debianbookworm +# set version label +ARG BUILD_DATE +# ARG BUILDARCH +ARG TARGETARCH +ARG VERSION +ARG KUBECTL_VERSION=1.30.2 +ARG HELM_VERSION=3.15.2 +ARG SEABIRD_VERSION=0.6.0 +ARG K9S_VERSION=0.50.9 +ARG FREELENS_VERSION=1.5.3 +LABEL build_version="based on Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="Michael Trip" +WORKDIR /tmp + +# Download all packages and install everything in one layer +RUN \ + echo "**** Update package lists and install base tools ****" && \ + DEBIAN_FRONTEND=noninteractive apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget gnupg2 ca-certificates apt-transport-https && \ + echo "**** Download external packages ****" && \ + case ${TARGETARCH} in \ + "amd64") DOWNLOAD_ARCH=linux-amd64 ;; \ + "arm64") DOWNLOAD_ARCH=linux-arm64 ;; \ + esac && \ + curl -L https://github.com/freelensapp/freelens/releases/download/v${FREELENS_VERSION}/Freelens-${FREELENS_VERSION}-${DOWNLOAD_ARCH}.deb -o /tmp/freelens.deb && \ + curl -L https://github.com/derailed/k9s/releases/download/v${K9S_VERSION}/k9s_Linux_${TARGETARCH}.tar.gz -o /tmp/k9s.tar.gz && \ + curl -L https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/${TARGETARCH}/kubectl -o /usr/local/bin/kubectl && \ + chmod +x /usr/local/bin/kubectl && \ + curl -L https://get.helm.sh/helm-v${HELM_VERSION}-linux-${TARGETARCH}.tar.gz -o /tmp/helm.tar.gz && \ + curl -L https://github.com/getseabird/seabird/releases/download/v${SEABIRD_VERSION}/seabird_linux_${TARGETARCH}.tar.gz -o /tmp/seabird.tar.gz && \ + echo "**** Setup VS Code repository ****" && \ + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && \ + cp packages.microsoft.gpg /etc/apt/keyrings && \ + echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list && \ + apt-get update && \ + echo "**** Install all packages ****" && \ + mkdir -p /usr/share/man/man1 && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + vim \ + neofetch \ + firefox-esr \ + pluma \ + tilix \ + xdg-utils \ + mate-desktop-environment \ + man-db \ + default-jre-headless \ + openjdk-17-jre-headless \ + libreoffice-writer \ + libreoffice-calc \ + libreoffice-impress \ + libreoffice-draw \ + thunderbird \ + code && \ + echo "**** Install downloaded packages and extract tools ****" && \ + apt-get install -y /tmp/freelens.deb && \ + tar -zxvf /tmp/k9s.tar.gz && \ + tar -zxvf /tmp/seabird.tar.gz && \ + tar -zxvf /tmp/helm.tar.gz && \ + mv linux-${TARGETARCH}/helm /usr/local/bin/helm && \ + mv /tmp/k9s /usr/local/bin && \ + mv /tmp/seabird /usr/local/bin && \ + echo "**** MATE desktop tweaks ****" && \ + rm -f \ + /etc/xdg/autostart/mate-power-manager.desktop \ + /etc/xdg/autostart/mate-screensaver.desktop && \ + echo "**** Cleanup ****" && \ + apt-get autoclean && \ + rm -rf \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /tmp/* + +COPY /root / + +# ports and volumes +EXPOSE 3389 +VOLUME /home +VOLUME /config diff --git a/debian-mate/root/defaults/startwm.sh b/debian-mate/root/defaults/startwm.sh new file mode 100755 index 0000000..c1f33d3 --- /dev/null +++ b/debian-mate/root/defaults/startwm.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Combine env +/usr/bin/with-contenv /usr/bin/env | sed 's/^/export /g' > /defaults/env.sh +source /defaults/env.sh +rm /defaults/env.sh + +# Enable Nvidia GPU support if detected +if which nvidia-smi; then + export LIBGL_KOPPER_DRI2=1 + export MESA_LOADER_DRIVER_OVERRIDE=zink + export GALLIUM_DRIVER=zink +fi + +# Start Pulseaudio +/startpulse.sh & + +# Disable compositing +setterm blank 0 +setterm powerdown 0 +gsettings set org.mate.Marco.general compositing-manager false + +# Launch DE +/usr/bin/dbus-launch /usr/bin/mate-session > /dev/null 2>&1 \ No newline at end of file diff --git a/ubuntu-mate/root/etc/cont-init.d/60-create-user b/debian-mate/root/etc/cont-init.d/60-create-user similarity index 100% rename from ubuntu-mate/root/etc/cont-init.d/60-create-user rename to debian-mate/root/etc/cont-init.d/60-create-user diff --git a/ubuntu-mate/Dockerfile b/ubuntu-mate/Dockerfile deleted file mode 100644 index 678ed32..0000000 --- a/ubuntu-mate/Dockerfile +++ /dev/null @@ -1,69 +0,0 @@ -FROM ghcr.io/linuxserver/rdesktop:ubuntu-mate -# set version label -ARG BUILD_DATE -# ARG BUILDARCH -ARG TARGETARCH -ARG VERSION -ARG KUBECTL_VERSION=1.30.2 -ARG HELM_VERSION=3.15.2 -ARG SEABIRD_VERSION=0.6.0 -ARG K9S_VERSION=0.50.9 -ARG FREELENS_VERSION=1.5.3 -LABEL build_version="based on Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="Michael Trip" -WORKDIR /tmp -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y curl wget -RUN \ - case ${TARGETARCH} in \ - "amd64") DOWNLOAD_ARCH=linux-amd64 ;; \ - "arm64") DOWNLOAD_ARCH=linux-arm64 ;; \ - esac \ - && curl -L https://github.com/freelensapp/freelens/releases/download/v${FREELENS_VERSION}/Freelens-${FREELENS_VERSION}-${DOWNLOAD_ARCH}.deb --output /tmp/freelens.deb -RUN curl -L https://github.com/derailed/k9s/releases/download/v${K9S_VERSION}/k9s_Linux_${TARGETARCH}.tar.gz --output /tmp/k9s.tar.gz -RUN curl -L https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/${TARGETARCH}/kubectl --output /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl -RUN curl -L https://get.helm.sh/helm-v${HELM_VERSION}-linux-${TARGETARCH}.tar.gz --output /tmp/helm.tar.gz -RUN curl -L https://github.com/getseabird/seabird/releases/download/v${SEABIRD_VERSION}/seabird_linux_${TARGETARCH}.tar.gz --output /tmp/seabird.tar.gz - - -RUN \ - echo "**** install packages ****" && \ - apt update && \ - DEBIAN_FRONTEND=noninteractive apt-get install wget -y && \ - echo "**** Installing vscode stuff ***" && \ - wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && \ - cp packages.microsoft.gpg /etc/apt/keyrings && \ - echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list && \ - DEBIAN_FRONTEND=noninteractive apt-get install apt-transport-https -y &&\ - apt-get update && \ - DEBIAN_FRONTEND=noninteractive \ - apt-get install --no-install-recommends -y \ - vim \ - neofetch \ - libreoffice \ - thunderbird \ - pluma \ - tilix \ - terminator \ - code \ - mate-themes \ - xdg-utils && \ - apt-get install -y /tmp/freelens.deb && \ - tar -zxvf /tmp/k9s.tar.gz && \ - tar -zxvf /tmp/seabird.tar.gz && \ - tar -zxvf /tmp/helm.tar.gz && \ - mv linux-${TARGETARCH}/helm /usr/local/bin/helm && \ - mv /tmp/k9s /usr/local/bin && \ - mv /tmp/seabird /usr/local/bin && \ - echo "**** cleanup ****" && \ - apt-get autoclean && \ - rm -rf \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /tmp/* - -COPY /root / - -# ports and volumes -EXPOSE 3389 -VOLUME /home -VOLUME /config