Update Dockerfile
This commit is contained in:
17
Dockerfile
17
Dockerfile
@@ -17,12 +17,14 @@ RUN curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz" -o /tmp/go
|
|||||||
&& rm /tmp/go.tgz
|
&& rm /tmp/go.tgz
|
||||||
ENV PATH=/usr/local/go/bin:$PATH
|
ENV PATH=/usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
# Clone danser-go and build danser-cli inside the repo directory
|
||||||
RUN git clone --depth 1 --branch fix-screenshot-slider-ticks \
|
RUN git clone --depth 1 --branch fix-screenshot-slider-ticks \
|
||||||
https://github.com/Arlind-dev/danser-go.git /src/danser \
|
https://github.com/Arlind-dev/danser-go.git /src/danser \
|
||||||
&& cd /src/danser \
|
&& cd /src/danser \
|
||||||
&& go build -ldflags="-s -w" -o /out/danser-cli . \
|
&& go build -ldflags="-s -w" -o danser-cli . \
|
||||||
&& strip /out/danser-cli || true
|
&& strip danser-cli || true
|
||||||
|
|
||||||
|
# Fetch ffmpeg prebuilt binaries
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
mkdir -p /out/ffmpeg; \
|
mkdir -p /out/ffmpeg; \
|
||||||
URL="$(curl -s https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest \
|
URL="$(curl -s https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest \
|
||||||
@@ -38,6 +40,7 @@ RUN set -eux; \
|
|||||||
if [ -d "$FF_DIR/lib" ]; then mkdir -p /out/ffmpeg/lib && cp -a "$FF_DIR/lib/." /out/ffmpeg/lib/; fi; \
|
if [ -d "$FF_DIR/lib" ]; then mkdir -p /out/ffmpeg/lib && cp -a "$FF_DIR/lib/." /out/ffmpeg/lib/; fi; \
|
||||||
rm -rf /tmp/ffmpeg* /tmp/ffmpeg.tar.xz
|
rm -rf /tmp/ffmpeg* /tmp/ffmpeg.tar.xz
|
||||||
|
|
||||||
|
# Build and stage ImageMagick into /tmp/im/usr/local
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
IMAGICK_URL="$(curl -s https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest | jq -r '.tarball_url')"; \
|
IMAGICK_URL="$(curl -s https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest | jq -r '.tarball_url')"; \
|
||||||
mkdir -p /tmp/im; \
|
mkdir -p /tmp/im; \
|
||||||
@@ -84,14 +87,18 @@ ENV __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|||||||
|
|
||||||
RUN groupadd -g 1000 appuser 2>/dev/null || true \
|
RUN groupadd -g 1000 appuser 2>/dev/null || true \
|
||||||
&& id -u 1000 >/dev/null 2>&1 || useradd -u 1000 -g 1000 -m -s /bin/bash appuser \
|
&& id -u 1000 >/dev/null 2>&1 || useradd -u 1000 -g 1000 -m -s /bin/bash appuser \
|
||||||
&& mkdir -p /app/danser/{songs,settings,videos,screenshots,custom-replays,skins/default-skin,ffmpeg}
|
&& mkdir -p /app
|
||||||
|
|
||||||
COPY --from=builder /out/danser-cli /app/danser/danser-cli
|
# Bring the entire danser repo (including danser-cli) into the runtime image
|
||||||
|
COPY --from=builder /src/danser /app/danser
|
||||||
COPY --from=builder /out/ffmpeg/ /app/danser/ffmpeg/
|
COPY --from=builder /out/ffmpeg/ /app/danser/ffmpeg/
|
||||||
COPY --from=builder /tmp/im/usr/local/ /usr/local/
|
COPY --from=builder /tmp/im/usr/local/ /usr/local/
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=/app/danser:/app/danser/ffmpeg/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
|
ENV LD_LIBRARY_PATH=/app/danser:/app/danser/ffmpeg/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
|
||||||
RUN ldconfig
|
|
||||||
|
RUN ldconfig \
|
||||||
|
&& mkdir -p /app/danser/{songs,settings,videos,screenshots,custom-replays,skins/default-skin,ffmpeg} \
|
||||||
|
&& chown -R 1000:1000 /app/danser
|
||||||
|
|
||||||
COPY --chown=1000:1000 src/maps/ /app/danser/songs/
|
COPY --chown=1000:1000 src/maps/ /app/danser/songs/
|
||||||
COPY --chown=1000:1000 src/replays/ /app/danser/custom-replays/
|
COPY --chown=1000:1000 src/replays/ /app/danser/custom-replays/
|
||||||
|
|||||||
Reference in New Issue
Block a user