wip: slskd
This commit is contained in:
@ -1,74 +1,35 @@
|
||||
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/*
|
||||
# syntax=docker/dockerfile:1
|
||||
FROM debian:bookworm-slim AS downloader
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
curl ca-certificates unzip jq \
|
||||
&& 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
|
||||
ARG TARGETPLATFORM
|
||||
RUN TAG=$(curl -fsSL https://api.github.com/repos/slskd/slskd/releases/latest \
|
||||
| jq -r '.tag_name') \
|
||||
&& case "${TARGETPLATFORM}" in \
|
||||
"linux/amd64") URL="https://github.com/slskd/slskd/releases/download/${TAG}/slskd-${TAG}-linux-x64.zip" ;; \
|
||||
"linux/arm64") URL="https://github.com/slskd/slskd/releases/download/${TAG}/slskd-${TAG}-linux-arm64.zip" ;; \
|
||||
*) echo "Unsupported PLATFORM: ${TARGETPLATFORM}" >&2; exit 1 ;; \
|
||||
esac \
|
||||
&& curl -fsSL "$URL" -o slskd.zip \
|
||||
&& unzip slskd.zip
|
||||
|
||||
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 \
|
||||
openbox \
|
||||
wmctrl \
|
||||
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"]
|
||||
FROM debian:bookworm-slim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
tini jq ca-certificates gosu libstdc++6 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mkdir -p /app/code /app/data /run/slskd \
|
||||
&& useradd -u 1000 -m -d /app/data -s /bin/bash cloudron
|
||||
COPY --from=downloader /tmp/slskd /app/code/slskd
|
||||
COPY --from=downloader /tmp/wwwroot /app/code/wwwroot
|
||||
COPY slskd.yml.example /app/code/slskd.yml.example
|
||||
COPY start.sh /app/code/start.sh
|
||||
RUN chmod +x /app/code/slskd /app/code/start.sh \
|
||||
&& chown -R cloudron:cloudron /app/code /app/data /run/slskd
|
||||
WORKDIR /app/code
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
CMD ["./start.sh"]
|
||||
|
||||
|
Reference in New Issue
Block a user