Spaces:
Build error
Build error
| FROM runpod/pytorch:1.0.1-cu1281-torch280-ubuntu2404 | |
| # =========================================== | |
| # System dependencies (cached layer) | |
| # =========================================== | |
| RUN echo "=== Installing system dependencies ===" \ | |
| && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | |
| wget \ | |
| ca-certificates \ | |
| git \ | |
| build-essential \ | |
| cmake \ | |
| libfftw3-dev \ | |
| libopenmpi-dev \ | |
| openmpi-bin \ | |
| pipx \ | |
| bash \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && apt-get clean \ | |
| && echo "=== System dependencies installed successfully ===" | |
| # =========================================== | |
| # Install Miniconda (cached layer) | |
| # =========================================== | |
| ENV MINICONDA_HOME=/root/miniconda3 | |
| ENV PATH=${MINICONDA_HOME}/bin:${PATH} | |
| RUN echo "=== Downloading and installing Miniconda ===" \ | |
| && mkdir -p ${MINICONDA_HOME} \ | |
| && wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ${MINICONDA_HOME}/miniconda.sh \ | |
| && bash ${MINICONDA_HOME}/miniconda.sh -b -u -p ${MINICONDA_HOME} \ | |
| && rm -f ${MINICONDA_HOME}/miniconda.sh \ | |
| && conda init bash \ | |
| && conda clean -afy \ | |
| && echo "=== Miniconda installed successfully ===" | |
| # =========================================== | |
| # Install Poetry (cached layer) | |
| # =========================================== | |
| ENV PIPX_BIN_DIR=/root/.local/bin | |
| ENV PATH=${PIPX_BIN_DIR}:${PATH} | |
| RUN echo "=== Installing Poetry via pipx ===" \ | |
| && pipx ensurepath \ | |
| && pipx install poetry==2.2.1 \ | |
| && echo 'export PATH="$PATH:/root/.local/bin"' >> /root/.bashrc \ | |
| && echo "=== Poetry installed successfully ===" | |
| # Use bash login shell for subsequent RUN to make conda activation easier | |
| SHELL ["/bin/bash", "-lc"] | |
| # =========================================== | |
| # Multi-stage GROMACS build (optimized) | |
| # =========================================== | |
| ARG CUDA_TARGET_COMPUTE=89 | |
| ENV CUDA_TARGET_COMPUTE=${CUDA_TARGET_COMPUTE} | |
| RUN echo "=== Starting GROMACS build with CUDA compute capability ${CUDA_TARGET_COMPUTE} ===" \ | |
| && mkdir -p /tmp/gromacs-build \ | |
| && cd /tmp/gromacs-build \ | |
| && echo "=== Downloading GROMACS source ===" \ | |
| && wget -q ftp://ftp.gromacs.org/pub/gromacs/gromacs-2024.tar.gz \ | |
| && tar -xzf gromacs-2024.tar.gz \ | |
| && cd gromacs-2024 \ | |
| && mkdir build \ | |
| && cd build \ | |
| && echo "=== Configuring GROMACS with CMake ===" \ | |
| && cmake .. \ | |
| -DGMX_BUILD_OWN_FFTW=ON \ | |
| -DGMX_GPU=CUDA \ | |
| -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \ | |
| -DCMAKE_CUDA_ARCHITECTURES=${CUDA_TARGET_COMPUTE} \ | |
| -DGMX_GPU_PME=ON \ | |
| -DGMX_GPU_UPDATE=ON \ | |
| -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs \ | |
| -DCMAKE_C_COMPILER=gcc \ | |
| -DCMAKE_CXX_COMPILER=g++ \ | |
| -DGMX_HWLOC=ON \ | |
| -DGMX_OPENMP=ON \ | |
| -DCMAKE_CUDA_FLAGS="-use_fast_math" \ | |
| && echo "=== Compiling GROMACS ===" \ | |
| && make -j$(nproc) \ | |
| && echo "=== Installing GROMACS ===" \ | |
| && make install \ | |
| && cd / \ | |
| && rm -rf /tmp/gromacs-build \ | |
| && echo "=== GROMACS build completed successfully ===" | |
| ENV PATH=/usr/local/gromacs/bin:${PATH} | |
| # =========================================== | |
| # Clone repository (cached layer) | |
| # =========================================== | |
| ARG REPO_URL=https://github.com/Praful932/antibody-developability-abmelt | |
| ARG APP_HOME=/opt/antibody-developability-abmelt | |
| RUN echo "=== Cloning antibody-developability-abmelt repository ===" \ | |
| && git clone --depth=1 ${REPO_URL} ${APP_HOME} \ | |
| && echo "=== Repository cloned successfully ===" | |
| WORKDIR ${APP_HOME}/abmelt_infer_pipeline/envs/abmelt_md_simulation_env | |
| # =========================================== | |
| # Create conda env and install dependencies (optimized) | |
| # =========================================== | |
| # Accept conda TOS non-interactively | |
| ENV CONDA_TOS_ACCEPT=true | |
| ENV CONDA_SOLVER=libmamba | |
| RUN echo "=== Setting up conda environment ===" \ | |
| && eval "$(conda shell.bash hook)" \ | |
| && conda install -n base conda-libmamba-solver -y \ | |
| && conda create -n abmelt-3-11-env python=3.11 -y \ | |
| && conda activate abmelt-3-11-env \ | |
| && echo "=== Installing all conda dependencies in one go ===" \ | |
| && conda install -c conda-forge -c bioconda \ | |
| openmm \ | |
| pdbfixer \ | |
| anarci \ | |
| libgcc-ng \ | |
| libstdcxx-ng \ | |
| -y \ | |
| && conda clean -afy \ | |
| && echo "=== Conda environment setup completed successfully ===" | |
| # =========================================== | |
| # Configure Poetry and install dependencies | |
| # =========================================== | |
| ENV POETRY_REQUESTS_TIMEOUT=300 | |
| RUN echo "=== Configuring Poetry and installing dependencies ===" \ | |
| && eval "$(conda shell.bash hook)" \ | |
| && conda activate abmelt-3-11-env \ | |
| && poetry config virtualenvs.create false \ | |
| && poetry config installer.max-workers 1 \ | |
| && echo "=== Clearing Poetry cache ===" \ | |
| && poetry cache clear --all . || true \ | |
| && rm -rf $(poetry config cache-dir)/artifacts || true \ | |
| && echo "=== Installing dependencies with Poetry ===" \ | |
| && poetry install -vvv \ | |
| && echo "=== Poetry installation completed successfully ===" | |
| # =========================================== | |
| # Final cleanup and success message | |
| # =========================================== | |
| RUN echo "=== Final cleanup ===" \ | |
| && conda clean -afy \ | |
| && apt-get autoremove -y \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && rm -rf /tmp/* \ | |
| && echo "=== Docker build completed successfully! ===" | |
| # Set default command | |
| CMD ["/bin/bash"] |