Активировать среду conda в докере - PullRequest
1 голос
/ 12 марта 2019

Мне нужно активировать среду в Docker и запустить команду в этой среде.Я создаю среду, но затем пытаюсь активировать эту среду и запускаю команду следующим образом:

CMD [ "source activate mro_env && ipython kernel install --user --name=mro_env" ]

, но когда я запускаю docker, я получаю ошибку:

[FATAL tini (8)] exec source activate mro_env && ipython kernel install 
--user --name=mro_env failed: No such file or directory

Thisэто весь Dockerfile:

FROM continuumio/miniconda3

ADD /src/mro_env.yml /src/mro_env.yml
RUN conda env create -f /src/mro_env.yml

# Pull the environment name out of the mro_env.yml
RUN echo "source activate $(head -1 /src/mro_env.yml | cut -d' ' -f2)" > ~/.bashrc
ENV PATH /opt/conda/envs/$(head -1 /src/mro_env.yml | cut -d' ' -f2)/bin:$PATH

CMD [ "source activate mro_env && ipython kernel install --user --name=mro_env" ]

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете установить CONDA_DEFAULT_ENV

Примерно так:

FROM continuumio/miniconda3

ARG conda_env=mro_env

ADD /src/environment.yml /src/environment.yml
RUN conda env create -f /src/environment.yml

ENV PATH /opt/conda/envs/$conda_env/bin:$PATH
ENV CONDA_DEFAULT_ENV $conda_env

CMD [ "python", "test.py" ]

ОБНОВЛЕНИЕ:

Лучше использовать активацию.Работа для меня:

FROM continuumio/miniconda3

ADD /src/environment.yml /src/environment.yml

RUN conda env create -f /src/environment.yml
ENV PATH /opt/conda/envs/mro_env/bin:$PATH
RUN /bin/bash -c "source activate mro_env"

CMD [ "python", "test.py" ]
...