diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 430990bd4a3f8a4949767daf0440355de7275a1c..c567d58bd2d810a5eb68671307edc14289dcac30 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ push_docker_image: stage: build image: docker:26.0.1-dind script: - - docker build -t $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA . + - docker build -t $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA -f docker/Dockerfile . - docker push $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA only: - main # Only run on the main branch diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 24f1151d8d385596649b2a328847bcbb66180c45..0000000000000000000000000000000000000000 --- a/Dockerfile +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 2021 DeepMind Technologies Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -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 - -# Use bash to support string substitution. -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ - build-essential \ - cmake \ - cuda-command-line-tools-$(cut -f1,2 -d- <<< ${CUDA//./-}) \ - git \ - hmmer \ - kalign \ - tzdata \ - wget \ - && rm -rf /var/lib/apt/lists/* \ - && apt-get autoremove -y \ - && apt-get clean - -# Compile HHsuite from source. -RUN git clone --branch v3.3.0 https://github.com/soedinglab/hh-suite.git /tmp/hh-suite \ - && mkdir /tmp/hh-suite/build \ - && pushd /tmp/hh-suite/build \ - && cmake -DCMAKE_INSTALL_PREFIX=/opt/hhsuite .. \ - && make -j 4 && make install \ - && ln -s /opt/hhsuite/bin/* /usr/bin \ - && popd \ - && rm -rf /tmp/hh-suite - -# Install Miniconda package manager. -RUN wget -q -P /tmp \ - 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" -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/ \ - https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt - -# Install pip packages. -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.4.26 \ - jaxlib==0.4.26+cuda12.cudnn89 \ - -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html - -# 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. -# ENTRYPOINT does not support easily running multiple commands, so instead we -# write a shell script to wrap them up. -WORKDIR /app/alphafold -RUN echo $'#!/bin/bash\n\ -ldconfig\n\ -python /app/alphafold/run_alphafold.py "$@"' > /app/run_alphafold.sh \ - && chmod +x /app/run_alphafold.sh -ENTRYPOINT ["/app/run_alphafold.sh"] \ No newline at end of file