目标: 使用miniconda创建一个docker镜像,该镜像将安装所有依赖项,然后运行一些关于Django和其他包的命令。每当有人bin/bash进入容器时,它都应该从可用的包开始,而无需我添加entrypoint并在那里进行env hacks。
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.yml全局安装所有conda包,但显然我做不到。
WORKDIR /code/
,为了简洁起见,我没有包含它。 - Claudiu Creanga