File size: 2,105 Bytes
cc7c981 03f79eb cc7c981 1c8d468 cc7c981 1c8d468 03f79eb 1c33579 27491d1 1c8d468 27491d1 1c33579 cc7c981 0be42fd cc7c981 0be42fd cc7c981 0be42fd 27491d1 cc7c981 fa25632 cc7c981 0cfc367 fa25632 0cfc367 fa25632 cc7c981 1c33579 6273ef6 8986024 9bb0f89 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
FROM python:3.9-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
wget \
curl \
build-essential \
gcc \
g++ \
make \
libffi-dev \
libssl-dev \
libglib2.0-0 \
libxext6 \
libsm6 \
libxrender1 \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# Install Miniforge (conda-forge–based; no Anaconda ToS) and configure channels
RUN wget -q https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \
bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \
rm Miniforge3-Linux-x86_64.sh
ENV PATH="/opt/conda/bin:${PATH}"
# Add bioconda; conda-forge is default for Miniforge. No Anaconda ToS needed.
RUN conda config --add channels bioconda && \
conda config --set channel_priority flexible
# Install mamba for faster package installation
RUN conda install -n base -c conda-forge mamba -y
# Install AMBER tools, PyMOL, AutoDock Vina 1.1.2, Open Babel, RDKit, and gemmi (for Meeko)
RUN mamba install -y python=3.11 \
conda-forge::ambertools conda-forge::pymol-open-source \
bioconda::autodock-vina conda-forge::openbabel conda-forge::rdkit conda-forge::gemmi
# Clean up conda/mamba cache to reduce image size
RUN conda clean -afy
# Install Python packages via pip (only packages not provided by conda or that need pip)
# Note: numpy, pandas, matplotlib are already installed by conda; don't override to avoid conflicts
RUN pip install --no-cache-dir \
flask==2.3.3 \
flask-cors==4.0.0 \
biopython \
seaborn \
mdanalysis \
gunicorn==21.2.0 \
requests \
meeko>=0.7.0 \
prody \
"numpy<2.0"
# Set working directory
WORKDIR /AmberPrep
# Copy the entire project
COPY . .
# Create necessary directories with proper permissions
RUN mkdir -p /AmberPrep/obsolete /AmberPrep/pdb /AmberPrep/temp /AmberPrep/output && \
chmod -R 777 /AmberPrep
# Make sure the amberprep package is on the Python path
ENV PYTHONPATH="${PYTHONPATH}:/AmberPrep"
# Expose the port
EXPOSE 7860
# Run the application
CMD ["python", "start_web_server.py"]
|