FROM alpine:3.19 # Install dependencies RUN apk add --no-cache \ python3 \ py3-pip \ ffmpeg \ bash \ curl \ tzdata \ dcron \ && pip3 install --no-cache-dir yt-dlp flask --break-system-packages # Create directories RUN mkdir -p /downloads /config /app # Copy scripts and web UI COPY sync.sh /app/sync.sh COPY entrypoint.sh /app/entrypoint.sh COPY app.py /app/app.py COPY templates/ /app/templates/ COPY static/ /app/static/ RUN chmod +x /app/sync.sh /app/entrypoint.sh /app/app.py # Set working directory WORKDIR /app # Environment defaults ENV DOWNLOAD_DIR=/downloads \ CONFIG_DIR=/config \ SYNC_SCHEDULE="0 2 * * *" \ MAX_QUALITY=1080 \ SLEEP_INTERVAL=2 \ TZ=America/Phoenix # Expose web UI port EXPOSE 8080 # Expose volume mount points VOLUME ["/downloads", "/config"] # Run entrypoint ENTRYPOINT ["/app/entrypoint.sh"]