mirror of
https://gitea.psi.ch/APOG/acsmnode.git
synced 2025-06-24 21:21:08 +02:00
Update Dockerfile and docker-compose.yaml. By default, container can use cifs to map network drives so no need to install, and added bash command to docker compose file to run both jupyterlab and dash board simultanously
This commit is contained in:
96
Dockerfile
96
Dockerfile
@ -1,46 +1,50 @@
|
||||
# Get additional info about the Dockerfile at https://docs.docker.com/reference/dockerfile/
|
||||
|
||||
FROM continuumio/miniconda3:latest
|
||||
|
||||
# Define the name of the environment
|
||||
ARG ENV_NAME=apog_penv
|
||||
ENV ENV_NAME=apog_penv
|
||||
|
||||
# Set the working directory
|
||||
WORKDIR /acsmdc
|
||||
|
||||
# Use mamba if available for faster installation
|
||||
RUN conda install -y -n base -c conda-forge mamba && \
|
||||
mamba create -y -n $ENV_NAME -c conda-forge -c defaults python=3.11 \
|
||||
jupyter numpy h5py pandas matplotlib plotly=5.24 scipy pip && \
|
||||
conda clean --all -y && rm -rf /root/.cache/pip
|
||||
|
||||
# Activate the environment and install additional pip packages
|
||||
RUN conda run -n $ENV_NAME pip install pybis==1.35 igor2 ipykernel sphinx dash dash-bootstrap-components
|
||||
|
||||
# Set the default environment when the container starts
|
||||
ENV CONDA_DEFAULT_ENV=$ENV_NAME
|
||||
ENV PATH=/opt/conda/envs/$ENV_NAME/bin:$PATH
|
||||
|
||||
# Create necessary directories for VOLUME
|
||||
RUN mkdir -p /acsmdc/data /acsmdc/figures /acsmdc/pipelines/params
|
||||
|
||||
# Copy project files, excluding certain directories (handled via .dockerignore)
|
||||
COPY . /acsmdc
|
||||
|
||||
# Copy and install dependencies from requirements.txt
|
||||
COPY requirements.txt /acsmdc/requirements.txt
|
||||
RUN conda run -n $ENV_NAME pip install -r /acsmdc/requirements.txt
|
||||
|
||||
# Define volumes for excluded directories
|
||||
VOLUME ["/acsmdc/data", "/acsmdc/figures", "/acsmdc/pipelines/params"]
|
||||
|
||||
# Add JupyterLab
|
||||
RUN pip install --no-cache-dir jupyterlab
|
||||
#RUN pip install pipx
|
||||
#RUN pipx install renku
|
||||
# Add any other packages needed for JupyterLab
|
||||
#RUN pip install --no-cache-dir matplotlib scikit-learn
|
||||
|
||||
# If you want to set JupyterLab as the default command
|
||||
CMD ["jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token='my-token'"]
|
||||
# Get additional info about the Dockerfile at https://docs.docker.com/reference/dockerfile/
|
||||
|
||||
FROM continuumio/miniconda3:latest
|
||||
|
||||
# Define the name of the environment
|
||||
ARG ENV_NAME=apog_penv
|
||||
ENV ENV_NAME=apog_penv
|
||||
|
||||
# Set the working directory
|
||||
WORKDIR /acsmdc
|
||||
|
||||
#RUN apt-get update && apt-get install -y cifs-utils
|
||||
|
||||
# Use mamba if available for faster installation
|
||||
RUN conda install -y -n base -c conda-forge mamba && \
|
||||
mamba create -y -n $ENV_NAME -c conda-forge -c defaults python=3.11 \
|
||||
jupyter numpy h5py pandas matplotlib plotly=5.24 scipy pip && \
|
||||
conda clean --all -y && rm -rf /root/.cache/pip
|
||||
|
||||
# Activate the environment and install additional pip packages
|
||||
RUN conda run -n $ENV_NAME pip install pybis==1.35 igor2 ipykernel sphinx dash dash-bootstrap-components
|
||||
|
||||
# Set the default environment when the container starts
|
||||
ENV CONDA_DEFAULT_ENV=$ENV_NAME
|
||||
ENV PATH=/opt/conda/envs/$ENV_NAME/bin:$PATH
|
||||
|
||||
# Create necessary directories for VOLUME
|
||||
RUN mkdir -p /acsmdc/data /acsmdc/figures /acsmdc/pipelines/params
|
||||
#RUN mkdir -p /mnt/lac_ord
|
||||
|
||||
# Copy project files, excluding certain directories (handled via .dockerignore)
|
||||
COPY . /acsmdc
|
||||
|
||||
# Copy and install dependencies from requirements.txt
|
||||
COPY requirements.txt /acsmdc/requirements.txt
|
||||
RUN conda run -n $ENV_NAME pip install -r /acsmdc/requirements.txt
|
||||
|
||||
# Define volumes for excluded directories
|
||||
VOLUME ["/acsmdc/data", "/acsmdc/figures", "/acsmdc/pipelines/params"]
|
||||
|
||||
# Add JupyterLab
|
||||
RUN pip install --no-cache-dir jupyterlab
|
||||
#RUN pip install pipx
|
||||
#RUN pipx install renku
|
||||
# Add any other packages needed for JupyterLab
|
||||
#RUN pip install --no-cache-dir matplotlib scikit-learn
|
||||
|
||||
# If you want to set JupyterLab as the default command
|
||||
#CMD ["jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token='my-token'"]
|
||||
CMD ["/bin/bash"]
|
@ -1,5 +1,5 @@
|
||||
services:
|
||||
data_processor:
|
||||
datachain_processor:
|
||||
image: datachain_processor
|
||||
container_name: datachain_processor
|
||||
restart: unless-stopped
|
||||
@ -13,7 +13,11 @@ services:
|
||||
- ./figures:/acsmdc/figures
|
||||
- ./pipelines/params:/acsmdc/pipelines/params
|
||||
- lac_ord:/mnt/network/lac_ord:rw
|
||||
command: ["jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token='my-token'"]
|
||||
command: >
|
||||
bash -c "
|
||||
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='my-token' &
|
||||
python /acsmdc/app/data_flagging_app.py
|
||||
"
|
||||
|
||||
volumes:
|
||||
lac_ord:
|
||||
|
Reference in New Issue
Block a user