【发布时间】:2019-05-02 11:12:00
【问题描述】:
目标:从 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
它不在我的环境中运行。
这里有一些丑陋的 hack:https://github.com/ContinuumIO/docker-images/issues/89 实际上不起作用,因为您在进入容器或执行另一个 RUN 命令时使用了新的 shell 会话,因此您必须使用 && 连接命令(丑陋)。
理想情况下,我想从 environment.ymlglobally 安装我所有的 conda 包,但显然我做不到。
【问题讨论】:
-
嗨 Claudiu,你确定你的 Dockerfile 工作正常吗?您的最后一个命令应将环境文件称为 /code/environment.yml。你可以发布你运行的 docker 命令吗?
-
链接的问题仍然开放。
-
@Mihai 是的,对不起,我有一个
WORKDIR /code/,为简洁起见,我没有包含它 -
您能编辑帖子并添加完整的 Dockerfile 吗?还有“RUN conda ...”这一行,运行成功了吗?
-
@Mihai 更新,是的,运行成功
标签: python docker anaconda conda