Как установить пакеты с миникондой в Dockerfile? - PullRequest
1 голос
/ 07 октября 2019

У меня есть простой 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

И он не может быть построен. На самом последнем шаге я получаю /bin/sh: 1: conda: not found ....
Первое появление conda --version не вызвало ошибку, которая заставляет меня задуматься о том, что проблема PATH?
Я хотел бы иметь другуюЗапись RUN в этом Dockerfile, в которую я бы установил пакеты с conda install ...
В конце я хочу получить запись CMD ["bash", "test.py"], чтобы при создании docker run этого образа автоматически запускался простой скрипт на Python, который импортируетвсе библиотеки установлены с помощью conda. Возможно также сценарий CMD ["bash", "test.sh"], который будет проверять, действительно ли установлены интерпретатор conda и python.

Это упрощенный пример, будет много программного обеспечения, поэтому я не хочу менять базовый образ.

1 Ответ

1 голос
/ 07 октября 2019

это будет работать с использованием ARG и 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
...