FROM ghcr.io/linuxserver/baseimage-arch:arm64v8-latest AS buildstage RUN \ echo "**** install build deps ****" && \ pacman -Sy --noconfirm \ base-devel \ git \ pulseaudio \ sudo && \ echo "**** prep abc user ****" && \ usermod -s /bin/bash abc && \ echo '%abc ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/abc && \ mkdir /buildout USER abc:abc RUN \ echo "**** build AUR packages ****" && \ cd /tmp && \ AUR_PACKAGES="\ xrdp \ xorgxrdp \ pulseaudio-module-xrdp" && \ for PACKAGE in ${AUR_PACKAGES}; do \ sudo chmod 777 -R /root && \ git clone https://aur.archlinux.org/${PACKAGE}.git && \ cd ${PACKAGE} && \ PU_VERSION=$(pulseaudio --version | awk '{print $2}' | awk -F'-' '{print $1}') && \ sed -i \ -e 's#https://freedesktop.org#https://www.freedesktop.org#g' \ -e '/_pulseaudio_ver:/d' \ -e 's/_pulseaudio_ver=.*/_pulseaudio_ver="'${PU_VERSION}'"/g' \ PKGBUILD && \ makepkg -sAci --skipinteg --noconfirm && \ sudo -u root rm -f ${PACKAGE}-debug*pkg.tar.xz && \ sudo -u root tar xf ${PACKAGE}-*pkg.tar.xz -C /buildout && \ cd /tmp ;\ done # docker compose FROM ghcr.io/linuxserver/docker-compose:amd64-latest AS compose # runtime stage FROM ghcr.io/linuxserver/baseimage-arch:arm64v8-latest # set version label ARG BUILD_DATE ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" # copy over packages from build stage COPY --from=buildstage /buildout/ / COPY --from=compose /usr/local/bin/docker-compose /usr/local/bin/docker-compose #Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker ENV NVIDIA_DRIVER_CAPABILITIES="all" \ HOME=/config RUN \ echo "**** enable locales ****" && \ sed -i \ '/locale/d' \ /etc/pacman.conf && \ echo "**** install deps ****" && \ pacman -Sy --noconfirm --needed \ base-devel \ docker \ fuse \ git \ hicolor-icon-theme \ imlib2 \ lame \ libfdk-aac \ libjpeg-turbo \ libva-mesa-driver \ libxrandr \ mesa \ mesa-libgl \ noto-fonts \ noto-fonts-emoji \ openbox \ openssh \ pciutils \ pulseaudio \ sudo \ vulkan-broadcom \ vulkan-extra-layers \ vulkan-panfrost \ vulkan-radeon \ vulkan-swrast \ vulkan-tools \ x264 \ xf86-video-amdgpu \ xf86-video-nouveau \ xf86-video-qxl \ xorg-server \ xorg-xmessage \ xterm && \ pacman -Sy --noconfirm \ glibc && \ echo "**** user perms ****" && \ echo "abc:abc" | chpasswd && \ usermod -s /bin/bash abc && \ echo 'abc ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/abc && \ echo "allowed_users=anybody" > /etc/X11/Xwrapper.config && \ echo "**** build dbus-x11 ****" && \ rm -f \ /usr/lib/systemd/system/dbus.service \ /usr/lib/systemd/user/dbus.service && \ cd /tmp && \ pacman -Rns --noconfirm -dd dbus && \ git clone https://aur.archlinux.org/dbus-x11.git && \ chown -R abc:abc dbus-x11 && \ cd dbus-x11 && \ sed -i '/check()/,+2 d' PKGBUILD && \ sudo -u abc makepkg -sAci --skipinteg --noconfirm --needed && \ echo "**** openbox tweaks ****" && \ sed -i \ -e 's/NLIMC/NLMC/g' \ -e 's|| yes\n|' \ -e 's|| \n|' \ /etc/xdg/openbox/rc.xml && \ echo "**** proot-apps ****" && \ mkdir /proot-apps/ && \ PAPPS_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/proot-apps/releases/latest" \ | awk '/tag_name/{print $4;exit}' FS='[""]') && \ curl -L https://github.com/linuxserver/proot-apps/releases/download/${PAPPS_RELEASE}/proot-apps-aarch64.tar.gz \ | tar -xzf - -C /proot-apps/ && \ echo "${PAPPS_RELEASE}" > /proot-apps/pversion && \ echo "**** configure locale ****" && \ for LOCALE in $(curl -sL https://raw.githubusercontent.com/thelamer/lang-stash/master/langs); do \ localedef -i $LOCALE -f UTF-8 $LOCALE.UTF-8; \ done && \ echo "**** theme ****" && \ curl -s https://raw.githubusercontent.com/thelamer/lang-stash/master/theme.tar.gz \ | tar xzvf - -C /usr/share/themes/Clearlooks/openbox-3/ && \ echo "**** cleanup ****" && \ pacman -Rsn --noconfirm \ git \ $(pacman -Qdtq) && \ rm -rf \ /tmp/* \ /var/cache/pacman/pkg/* \ /var/lib/pacman/sync/* # add local files COPY /root / # ports and volumes EXPOSE 3389 VOLUME /config