如何在Docker中使用源代码?

我试图在docker中使用virtualenv来实现部署兼容性。 但执行到这一行时出错了:

CMD source openparty/bin/activate 

我不知道。

IIRC, CMD执行一个单独的shell,所以即使它工作, source也不会做你所需要的。 source命令从指定的文件读取并执行命令。 在virtualenv的情况下,它定义了一堆环境variables,最显着的是PATH 。 我相信你可以简单地将虚拟环境的path添加到PATH的前面,并获得类似的效果。

activate脚本仅用于获取为该virtualenvconfiguration的交互式shell。 你可以使用像Dockerfile这样的…

 CMD ["bash", "--rcfile", "openparty/bin/activate"] 

但是如果你只是想在你的virtualenv的上下文中运行一个Python命令,那么直接引用virtualenv的python会更简单:

 ENTRYPOINT ["openparty/bin/python", "openparty/bin/manage.py"] 

然后你可以调用类似的命令

 docker run --rm -P openparty_image runserver 

而不必与壳牌中介搏斗。