30 lines
754 B
Docker
30 lines
754 B
Docker
FROM python:3.11-slim
|
|
|
|
# Install ffmpeg + curl and download latest yt-dlp binary
|
|
RUN apt update && \
|
|
apt install -y curl ffmpeg && \
|
|
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && \
|
|
chmod a+rx /usr/local/bin/yt-dlp && \
|
|
apt clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy project files
|
|
COPY . .
|
|
|
|
# Install Python dependencies
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Create volume path (optional - will be mounted later in K8s)
|
|
RUN mkdir -p /music
|
|
|
|
# Declare env var for clean override later in Helm
|
|
ENV MUSIC_DIR=/music
|
|
|
|
# Expose FastAPI port
|
|
EXPOSE 8000
|
|
|
|
# Start app
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
|