Containerize your Conda environment
3 phases to containerize a conda/mamba environment for ease of use
Recently I read somewhere (most likely in medium) that it is becoming increasingly important to containerize a conda environment for ease of use. Since I have recently done something equivalent, why not post it here?
I am going to show how to containerize a mamba which according to them is “a fast drop-in alternative to conda”. The setup that I use is as follows:
- Windows 10
- Docker Desktop for Windows v4.24.0
- Visual Studio Code to put together the docker files
Phase 1: Basic setup to containerize a conda environment
The Dockerfile to setup a conda environment based on your own settings is as follows:
FROM condaforge/mambaforge:23.3.1-0
RUN apt-get update \
&& apt-get install -y curl vim-tiny
ADD env .
EXPOSE 8888
# Setup mamba environment
RUN chmod 755 setup.sh \
&& /bin/sh -c "./setup.sh"
WORKDIR /
CMD tail -f /dev/null
It uses the mambaforge image as the base image. It copies the 3 files described below from the env folder into the root folder inside the container. It exposes port 8888 which is where the JupyterLab…