FROM python:3.11-slim # Set working directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ cron \ && rm -rf /var/lib/apt/lists/* # Copy requirements and install Python dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy application files COPY src/ ./src/ COPY config/ ./config/ # Create output directories RUN mkdir -p /app/data/snapshots /app/data/logs # Copy scripts COPY scripts/ ./scripts/ RUN chmod +x scripts/*.sh # Copy cron configuration COPY scripts/crontab /etc/cron.d/parentzone-downloader RUN chmod 0644 /etc/cron.d/parentzone-downloader RUN crontab /etc/cron.d/parentzone-downloader # Create log file RUN touch /var/log/cron.log # Set environment variables ENV PYTHONUNBUFFERED=1 ENV PYTHONPATH=/app # Expose port for web server EXPOSE 8080 # Expose volume for persistent data VOLUME ["/app/data/snapshots", "/app/data/logs", "/app/data/parentzone_images"] # Start all services using startup script CMD ["./scripts/startup.sh"]