FROM nvidia/cuda:11.5.1-base-ubuntu20.04

RUN apt-get update -qq && \
    apt-get install -y unzip locales && \
    apt-get clean && \ 
    rm -rf /var/lib/apt/lists/*

RUN locale-gen en_US.UTF-8 && update-locale

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    libx11-6 \
    gdebi-core \
    libapparmor1  \
    libcurl4-openssl-dev \
    build-essential \
    gnupg2 \
    cmake \
    curl \
    screen \
    # Mujoco
    git \
    libgl1-mesa-dev \
    libgl1-mesa-glx \
    libglew-dev \
    libosmesa6-dev \
    software-properties-common \
    net-tools \
    vim \
    # virtualenv \
    wget \
    xpra \
    xserver-xorg-dev \
    ################################
    && rm -rf /var/lib/apt/lists/*

ENV CONDA_AUTO_UPDATE_CONDA=false
RUN curl -sLo ~/miniconda.sh -O  https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh  && \
    chmod +x ~/miniconda.sh && \
    bash ~/miniconda.sh -b -p /usr/conda && \
    rm ~/miniconda.sh

ENV PATH=/usr/conda/bin:$PATH

# Mujoco
RUN curl -o /usr/local/bin/patchelf https://s3-us-west-2.amazonaws.com/openai-sci-artifacts/manual-builds/patchelf_0.9_amd64.elf \
    && chmod +x /usr/local/bin/patchelf

ENV LANG C.UTF-8

RUN mkdir -p /root/.mujoco \
    && wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz -O mujoco.tar.gz \
    && tar -xf mujoco.tar.gz -C /root/.mujoco \
    && rm mujoco.tar.gz

ENV LD_LIBRARY_PATH /root/.mujoco/mujoco210/bin:${LD_LIBRARY_PATH}
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
################################
COPY ./requirements.txt requirements.txt
COPY ./requirements-dev.txt requirements-dev.txt
RUN pip install torch==1.12.1+cu113  -f https://download.pytorch.org/whl/cu113/torch_stable.html \
    pip install -r requirements.txt \
    pip install -r requirements-dev.txt \
    pre-commit install \
    && rm -rf /root/.cache