Asset-Frameworker/Dockerfile
2025-04-29 18:26:13 +02:00

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"]