首页 > 解决方案 > Miniconda 与 dockerfile,conda 环境如何使用

问题描述

目标:从 miniconda 创建一个 docker 镜像,它将安装我所有的依赖项,然后为 django 和其他包运行一些命令。此外,每次有人 bin/bash 进入容器时,它都应该从那些可用的包开始,而无需我添加入口点并在那里进行 env hack。

Dockerfile:
FROM continuumio/miniconda3
ADD environment.yml /code/
WORKDIR /code/
RUN conda env create -f environment.yml  # successful
RUN python test/manage.py 8000  # fails, no dependencies like pandas installed

但是现在我被卡住了,说我想在创建的环境中运行一些命令:

RUN python manage.py runserver 

它不在我的环境中运行。

这里有一些丑陋的黑客:https ://github.com/ContinuumIO/docker-images/issues/89实际上不起作用,因为当您进入容器或执行另一个 RUN 命令时,您正在使用新的 shell 会话,所以您有用 && 连接命令(丑陋)。

理想情况下,我想从 environment.yml全局安装我所有的 conda 包,但显然我不能这样做。

标签: pythondockeranacondaconda

解决方案


你必须告诉 docker conda 管理的 python 版本在哪里,并且在 docker 内部这是通过conda run

conda run --no-capture-output -n myenv python run.py

来源 https://pythonspeed.com/articles/activate-conda-dockerfile/


推荐阅读