Docker 开发流程

Docker development workflow

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

Solomon Hykes said "official" 工作流程涉及为每个 Git 提交构建和 运行 一个新的 Docker 图像。这是有道理的,但是如果我想在将更改提交到 Git 存储库之前测试更改怎么办?

我可以想到两种方法:

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

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

这两种方法都非常低效。有没有更好的方法?

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

您可以从 bash shell 开始启动该容器,这样您就可以从容器内部编辑文件:

docker run -it <some image> bash -l

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

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

docker run -it -v /home/joe/tmp:/data <some image>

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