diff --git a/Dockerfile b/Dockerfile index 995b7e47389db19a2897dce9ce0ad4e028fd4977..24f1151d8d385596649b2a328847bcbb66180c45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG CUDA=11.1.1 -FROM nvidia/cuda:${CUDA}-cudnn8-runtime-ubuntu18.04 +ARG CUDA=12.2.2 +FROM nvidia/cuda:${CUDA}-cudnn8-runtime-ubuntu20.04 # FROM directive resets ARGS, so we specify again (the value is retained if # previously set). ARG CUDA @@ -47,20 +47,17 @@ RUN git clone --branch v3.3.0 https://github.com/soedinglab/hh-suite.git /tmp/hh # Install Miniconda package manager. RUN wget -q -P /tmp \ - https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-Linux-x86_64.sh \ - && bash /tmp/Miniconda3-py38_23.11.0-2-Linux-x86_64.sh -b -p /opt/conda \ - && rm /tmp/Miniconda3-py38_23.11.0-2-Linux-x86_64.sh + https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ + && bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \ + && rm /tmp/Miniconda3-latest-Linux-x86_64.sh # Install conda packages. ENV PATH="/opt/conda/bin:$PATH" -RUN conda install -qy conda==4.13.0 \ - && conda install -y -c conda-forge \ - openmm=7.5.1 \ - cudatoolkit==${CUDA_VERSION} \ - pdbfixer \ - pip \ - python=3.8 \ - && conda clean --all --force-pkgs-dirs --yes +ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH" +RUN conda install -qy conda==24.1.2 pip python=3.11 \ + && conda install -y -c nvidia cuda=${CUDA_VERSION} \ + && conda install -y -c conda-forge openmm=8.0.0 pdbfixer \ + && conda clean --all --force-pkgs-dirs --yes COPY . /app/alphafold RUN wget -q -P /app/alphafold/alphafold/common/ \ @@ -70,17 +67,16 @@ RUN wget -q -P /app/alphafold/alphafold/common/ \ RUN pip3 install --upgrade pip --no-cache-dir \ && pip3 install -r /app/alphafold/requirements.txt --no-cache-dir \ && pip3 install --upgrade --no-cache-dir \ - jax==0.3.25 \ - jaxlib==0.3.25+cuda11.cudnn805 \ + jax==0.4.26 \ + jaxlib==0.4.26+cuda12.cudnn89 \ -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html -# Apply OpenMM patch. -WORKDIR /opt/conda/lib/python3.8/site-packages -RUN patch -p0 < /app/alphafold/docker/openmm.patch - # Add SETUID bit to the ldconfig binary so that non-root users can run it. RUN chmod u+s /sbin/ldconfig.real +# Currently needed to avoid undefined_symbol error. +RUN ln -sf /usr/lib/x86_64-linux-gnu/libffi.so.7 /opt/conda/lib/libffi.so.7 + # We need to run `ldconfig` first to ensure GPUs are visible, due to some quirk # with Debian. See https://github.com/NVIDIA/nvidia-docker/issues/1399 for # details.