FROM alpine:3.20 RUN adduser -S ytdl RUN apk add --no-cache nodejs npm python3 py3-pip ffmpeg mediainfo make g++ ADD . /app WORKDIR /app RUN npm ci ENV DOWNLOADS=/downloads ENV META_DIR=/metadata RUN mkdir $DOWNLOADS $META_DIR; chown -R ytdl $DOWNLOADS $META_DIR USER ytdl ENV PATH="/home/ytdl/.local/bin:$PATH" VOLUME $DOWNLOADS $META_DIR EXPOSE 8080 CMD ["sh", "-c", "pip install --break-system-packages --upgrade yt-dlp; exec node ."]