python – 在运行时将pip需求添加到docker镜像
我希望能够为自己的创建docker镜像添加一些额外的要求.我的策略是使用CMD命令从dockerfile构建映像,该命令将在运行时使用已安装的卷执行“pip install -r”命令. 这是我的dockerfile:
有了dockerfile我构建了图像:
最后我尝试使用此命令附加我的新需求:
我的本地文件夹“sourceCode”包含一个有效的requirements.txt文件(它只包含一行值为“gunicorn”). 为什么requirements.txt文件已正确附加但pip命令无法正常工作? 最佳答案
TLDR
pip命令没有运行,因为你告诉Docker改为运行/ bin / bash.
更长的解释 容器的默认ENTRYPOINT是/ bin / sh -c.你没有在Dockerfile中覆盖它,所以它仍然存在.默认的CMD指令可能没什么.你会在Dockerfile中覆盖它.运行时(为简洁起见忽略音量)
实际在容器内执行的是
很简单,看起来它会在你启动容器时运行pip. 现在让我们看一下用于启动容器的命令(同样,忽略卷)
实际在容器内执行的是
您在Dockerfile中指定的CMD参数将被您在命令行中指定的COMMAND覆盖.回想一下,docker运行command takes this form
进一步阅读 > This answer对CMD和ENTRYPOINT指令的作用有一个非常重要的解释
>这个blog post关于ENTRYPOINT和CMD指令之间的区别,值得一读. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |