52 lines
1.7 KiB
Docker
52 lines
1.7 KiB
Docker
# Use an official Python runtime as a parent image
|
|
FROM python:3.11-slim
|
|
|
|
# Set environment variables for default paths and settings
|
|
# These can be overridden at runtime using 'docker run -e VAR=VALUE ...'
|
|
ENV INPUT_DIR=/data/input
|
|
ENV OUTPUT_DIR=/data/output
|
|
ENV PROCESSED_DIR=/data/processed
|
|
ENV ERROR_DIR=/data/error
|
|
ENV LOG_LEVEL=INFO
|
|
ENV POLL_INTERVAL=5
|
|
ENV PROCESS_DELAY=2
|
|
# Calculate default workers based on typical container limits (can be overridden)
|
|
# This is a guess; adjust if needed or rely solely on runtime override.
|
|
ENV NUM_WORKERS=2
|
|
|
|
# Set the working directory in the container
|
|
WORKDIR /app
|
|
|
|
# Install system dependencies that might be needed by opencv-python or openexr
|
|
# (These are common dependencies; adjust if specific errors occur during build/runtime)
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libgl1-mesa-glx \
|
|
libglib2.0-0 \
|
|
libsm6 \
|
|
libxext6 \
|
|
libxrender1 \
|
|
# Add dependencies for OpenEXR if needed (libopenexr-dev might be too large, check specific libs)
|
|
# libopenexr25 # Example for Debian Bullseye/Bookworm, adjust based on base image OS version
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy the specific requirements file for the Docker image
|
|
COPY requirements-docker.txt .
|
|
|
|
# Install Python dependencies
|
|
RUN pip install --no-cache-dir -r requirements-docker.txt
|
|
|
|
# Copy the application code into the container
|
|
COPY main.py .
|
|
COPY monitor.py .
|
|
COPY asset_processor.py .
|
|
COPY configuration.py .
|
|
COPY config.py .
|
|
|
|
# Copy the presets directory
|
|
COPY Presets/ ./Presets/
|
|
|
|
# Make port 80 available to the world outside this container (if needed later, e.g., for a health check endpoint)
|
|
# EXPOSE 80
|
|
|
|
# Define the command to run the application
|
|
CMD ["python", "monitor.py"] |