2015-09-20 122 views
6

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

Solomon Hykes said“官方”工作流程涉及为每个Git提交构建并运行新的Docker镜像。这是有道理的,但如果我想在将它提交给Git repo之前测试一个更改,该怎么办?

我能想到的两种方法可以做到这一点:

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

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

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

回答

3

一个更有效的方法是从最新的图像(它有最新的代码)中运行一个新的容器。

你可以启动该容器启动一个bash shell的,这样你就可以从容器内部编辑文件:

docker run -it <some image> bash -l 

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

更改该容器中文件的另一种方法是使用卷启动它。我们的想法是在泊坞窗主机,而不是从容器本身的文件搞乱在命令行上的目录来修改文件:

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

,你将放在/home/joe/tmp您搬运工主机上的任何文件将根据可用/data/在容器中。将/data更改为适用于您的案例的任何路径并将其破解。

+0

谢谢! '-v'看起来不错。但是'/ home/joe/tmp'中的变化准备好后会发生什么?有没有一种优雅的方式将代码复制到Docker镜像,以便我可以重建和部署它? –

+0

然后提交并重建图像。您还应该考虑使用Jenkins为您构建这些图像 – Thomasleveil

+0

但是,如果代码位于本地开发机器上,那么如何“提交”它以便将其包含在Docker映像中? –