如何在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
而不必与壳牌中介搏斗。