FROM metagendb/procedural-metamaterials AS metagen-environment

SHELL [ "/bin/bash", "-c" ]
ENV SHELL=/bin/bash

RUN DEBIAN_FRONTEND=noninteractive apt-get -y update && apt-get -y --no-install-recommends install \
    ffmpeg \
    libsm6 \
    libxext6 \
    libglu1-mesa \
    libglu1-mesa-dev \
    libgl1-mesa-dev \
    libosmesa6-dev \
    wget \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN mkdir -p /opt/conda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-x86_64.sh -O /opt/conda/miniconda.sh --no-check-certificate \ 
    && bash /opt/conda/miniconda.sh -b -p /opt/miniconda
COPY environment_docker.yml /tmp/environment.yml
RUN . /opt/miniconda/bin/activate && conda env update --name base --file /tmp/environment.yml
RUN /opt/miniconda/bin/conda init

FROM metagen-environment

RUN mkdir /app
WORKDIR /app
COPY setup.py setup.py
COPY metagen metagen
RUN /opt/miniconda/bin/pip install /app
RUN ln -s /opt/miniconda/bin/render /usr/local/bin/render
RUN ln -s /opt/miniconda/bin/process_material /usr/local/bin/process_material
RUN ln -s /opt/miniconda/bin/batch_process_materials /usr/local/bin/batch_process_materials
RUN ln -s /opt/miniconda/bin/run_metagen_server /usr/local/bin/run_metagen_server
RUN ln -s /opt/miniconda/bin/run_metagen_program /usr/local/bin/run_metagen_program
