在Docker容器中运行的代码的正确开发工作流程是什么?
Solomon Hykes said“官方”工作流程涉及为每个Git提交构建和运行新的Docker镜像。这是有道理的,但是如果我想在将其更改为Git repo之前测试一下该怎么办?
我可以想到两种方法:
在本地开发服务器(例如,Django开发服务器)上运行代码。编辑文件;在开发服务器上测试;做一个Git提交;使用新代码重建Docker镜像;再次在本地Docker容器上测试。
不要运行本地开发服务器。相反,每次编辑文件时都构建并运行一个新的Docker镜像,然后在本地Docker容器上测试更改。
这两种方法效率都很低。还有更好的方法吗?
答案 0 :(得分:3)
更有效的方法是从构建的最新图像(然后具有最新代码)运行新容器。
您可以启动该容器启动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
更改为适合您案例的任何路径,并将其删除。