# syntax=docker/dockerfile:1.4 # Step 1: Setup backend environment with Miniconda FROM continuumio/miniconda3:latest AS backend # Install system dependencies for OpenCV RUN apt-get update && apt-get install -y \ libgl1-mesa-glx \ libglib2.0-0 && \ rm -rf /var/lib/apt/lists/* # Create a non-root user for security purposes RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" # Set the working directory for the backend WORKDIR /api # Copy the environment file and install dependencies COPY --chown=user api/environment.yml ./ # Install the conda environment RUN conda env create -n mgd --file environment.yml && conda clean -a -y # Install additional Python packages via pip after activating conda environment RUN /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh && conda activate mgd && pip install Flask Flask-Cors Flask-Limiter gunicorn" # Copy the backend application code COPY --chown=user api/ . RUN mkdir -p /api/output/generato_paired_paired/images && chown -R user:user /api/output # Expose port 7860 for the backend service EXPOSE 7860 # Set default command to initialize conda, activate the environment, and start the backend model CMD ["bash", "-c", "source /opt/conda/etc/profile.d/conda.sh && conda activate mgd && python app.py --host=0.0.0.0 --port 7860"]