将代码放入 docker 容器的最佳实践是什么?
以下是一些可能的方法:
通常,我们将mountdocker 用于开发/本地环境,以便立即应用代码更改。
您可以使用RUN git clone,但需要安装 git 并有权访问存储库。
最简单、最常用/推荐的方法是将 Dockerfile 放入您的存储库中并使用调用ADD。但请使用该COPY指令,因为它\xe2\x80\x99s 更明确
您应该始终将COPY应用程序代码放在 Dockerfile 中。您通常不应该在上面安装某些东西,并且几乎绝对不应该git在 Dockerfile 中运行。
运行 Git 有许多明显的问题。您只能构建 Dockerfile 提到的任何特定提交;在实际开发中,想要构建分支或过去的提交并不罕见。您需要git在镜像中安装自身和相关凭证,并存在相应的空间和安全问题。Docker 层缓存意味着docker build默认情况下,如果它认为已经完成了某个步骤,则不会重复git clone该步骤,这意味着您需要不遗余力地获取更新的构建。
在 SO 问题中,将代码挂载到容器中是很常见的。恕我直言,这很大程度上违背了 Docker 的初衷。如果您要在生产中运行应用程序,您只想分发映像,而不是单独分发其代码,但如果您一直在始终隐藏映像中内置代码的环境中进行开发,那么您实际上从未真正分发过映像。运行图像本身。在各种环境中还存在持续的性能和一致性问题。我真的不推荐docker run -v使用 Docker Composevolumes:作为将代码放入容器的方式。
例如,我已经看到足够多的 SO 问题,这些问题本质上只是一个 Dockerfile FROM python,然后使用 Docker Composevolumes:和command:选项来获得一个实时开发环境。只需安装 Python,即可轻松获得所需的工具,而无需通过复杂的间接序列在 Docker 中运行它们。
| 归档时间: |
|
| 查看次数: |
2926 次 |
| 最近记录: |