FROM ubuntu:20.04 AS builder ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y curl ca-certificates xz-utils binutils patch && rm -rf /var/lib/apt/lists/* WORKDIR /tmp # Récupérer l'AppImage avec l'URL fournie RUN curl -fL# 'https://drive.usercontent.google.com/download?id=1I7v1fh7jXa_YOh_AJ52XqRB3QJlqc1Hi&export=download&authuser=0' -o SoulseekQt-2024-2-4.AppImage && \ chmod +x SoulseekQt-2024-2-4.AppImage && \ ./SoulseekQt-2024-2-4.AppImage --appimage-extract && \ mv squashfs-root /soulseek FROM ubuntu:20.04 ENV LANG=C.UTF-8 ENV QT_XCB_NO_ACCESS_CONTROL=1 ENV QT_X11_NO_MITSHM=1 ENV DISPLAY=:1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ xvfb \ x11vnc \ websockify \ ca-certificates \ curl \ libegl1-mesa \ libfontconfig1 \ libxcb-cursor0 \ libx11-xcb1 \ libxcomposite1 \ libxcursor1 \ libxi6 \ libxinerama1 \ libxrandr2 \ libxkbcommon-x11-0 \ libxrender1 \ libxcb-icccm4 \ libxcb-image0 \ libxcb-keysyms1 \ libxcb-render-util0 \ libxcb-shape0 \ libxcb-shm0 \ libxcb-xfixes0 \ libxcb-xinerama0 \ libxcb-xkb1 \ libxshmfence1 \ libgl1 \ libdbus-1-3 \ libxtst6 \ libxss1 \ libxv1 \ libxvmc1 \ libxxf86dga1 \ libxxf86vm1 \ gosu \ xauth \ x11-xserver-utils \ && rm -rf /var/lib/apt/lists/* # Créer les répertoires nécessaires RUN mkdir -p /app/code /app/data /usr/share/novnc # Télécharger noVNC RUN curl -fL# "https://github.com/novnc/noVNC/archive/master.tar.gz" -o /tmp/novnc.tar.gz && \ tar -xf /tmp/novnc.tar.gz --strip-components=1 -C /usr/share/novnc && \ rm /tmp/novnc.tar.gz # Copier l'app Soulseek depuis le builder COPY --from=builder /soulseek /app/code # Copier nos fichiers Cloudron spécifiques COPY start.sh /app/code/start.sh COPY soulseek.conf /app/code/soulseek.conf # Créer l'utilisateur non-root Cloudron et régler les droits sur les dossiers persistants RUN useradd -u 1000 -m -d /app/data -s /bin/false cloudron && \ chown -R cloudron:cloudron /app/code /app/data EXPOSE 6080 CMD ["/app/code/start.sh"]