Docker开发工作流程

Joe*_*nin 6 python deployment django workflow docker

在Docker容器中运行的代码的正确开发工作流程是什么?

Solomon Hykes表示,"官方"工作流程涉及为每个Git提交构建和运行新的Docker镜像.这是有道理的,但如果我想在将其更改为Git仓库之前测试更改,该怎么办?

我可以想到两种方法:

  1. 在本地开发服务器(例如,Django开发服务器)上运行代码.编辑文件; 在开发服务器上测试; 做一个Git提交; 使用新代码重建Docker镜像; 再次在本地Docker容器上测试.

  2. 不要运行本地开发服务器.相反,每次编辑文件时都构建并运行一个新的Docker镜像,然后在本地Docker容器上测试更改.

这两种方法效率都很低.有没有更好的办法?

Tho*_*eil 3

更有效的方法是从构建的最新映像(然后具有最新代码)运行新容器。

您可以启动 bash shell 来启动该容器,以便您能够从容器内部编辑文件:

docker run -it <some image> bash -l
Run Code Online (Sandbox Code Playgroud)

然后,您将在该容器中运行应用程序来测试新代码。

更改该容器中文件的另一种方法是使用卷启动它。这个想法是改变 docker 主机上目录中的文件,而不是从容器本身的命令行弄乱文件:

docker run -it -v /home/joe/tmp:/data <some image>
Run Code Online (Sandbox Code Playgroud)

您将放入 docker 主机上的任何文件都将在容器中/home/joe/tmp可用。/data/更改/data为适合您的情况的任何路径并破解。

  • 您应该有一个包含 ADD 的 Dockerfile,该 ADD 无论如何都会将您的所有源代码文件放入映像中。否则构建包含您的代码的映像将如何工作?然后,您可以决定按原样从该映像运行容器,或者使用“-v”覆盖某些文件。您还可以有两个不同的 Dockerfile,一个用于分发应用程序,另一个用于开发目的 (2认同)