How to install packages with miniconda in Dockerfile?

32,234

This will work using ARG and ENV:

FROM ubuntu:18.04
ENV PATH="/root/miniconda3/bin:${PATH}"
ARG PATH="/root/miniconda3/bin:${PATH}"
RUN apt-get update

RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*

RUN wget \
    https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-latest-Linux-x86_64.sh -b \
    && rm -f Miniconda3-latest-Linux-x86_64.sh 
RUN conda --version
Share:
32,234

Related videos on Youtube

maciek
Author by

maciek

Updated on July 09, 2022

Comments

  • maciek
    maciek almost 2 years

    I have a simple Dockerfile:

    FROM ubuntu:18.04
    
    RUN apt-get update
    
    RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*
    
    RUN wget \
        https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
        && mkdir /root/.conda \
        && bash Miniconda3-latest-Linux-x86_64.sh -b \
        && rm -f Miniconda3-latest-Linux-x86_64.sh \
        && echo PATH="/root/miniconda3/bin":$PATH >> .bashrc \
        && exec bash \
        && conda --version
    
    RUN conda --version
    

    And it cannot be built. At the very last step I get /bin/sh: 1: conda: not found....
    The first appearance of conda --version did not raise an error which makes me wonder is that an PATH problem?
    I would like to have another RUN entry in this Dockerfile in which I would install packages with conda install ...
    At the end I want to have CMD ["bash", "test.py"] entry so that when in do docker run this image it automatically runs a simple python script that imports all the libraries installed with conda. Maybe also a CMD ["bash", "test.sh"] script that would test if conda and python interpreter are indeed installed.

    This is a simplified example, there will be a lot of software so I do not want to change the base image.

  • Matheus Araujo
    Matheus Araujo over 2 years
    If you get "/bin/sh: conda: command not found" is because you did not add the miniconda to your PATH. This is why you have to set the environment variables shown on the top of the snippet.
  • Howcanoe Wang
    Howcanoe Wang over 2 years
    remove the brackets of {PATH}, change it to "/root/miniconda3/bin:$PATH" works on my device
  • Soren
    Soren almost 2 years
    And then ? When I run RUN conda activate I get CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'