24 lines
587 B
Docker
24 lines
587 B
Docker
FROM python:3.12-alpine
|
|
|
|
# Install ffmpeg and dcron (lightweight cron daemon for Alpine)
|
|
RUN apk add --no-cache ffmpeg dcron
|
|
|
|
WORKDIR /app
|
|
|
|
# Install Python dependencies
|
|
COPY app/requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application code and static files
|
|
COPY app/ .
|
|
|
|
# Downloads are stored here (mount a host volume to persist them)
|
|
RUN mkdir -p /downloads
|
|
|
|
# Setup Cronjob (fails)
|
|
RUN echo "0 4 * * * pip install --upgrade yt-dlp >> /var/log/yt-dlp-upgrade.log 2>&1" | crontab -
|
|
|
|
EXPOSE 8080
|
|
|
|
# Launch
|
|
CMD uvicorn main:app --host 0.0.0.0 --port 8080 |