docker 生产镜像是否需要批量代码
Should the docker production image needs code as volume or not
我正在使用 docker 并在我的开发中将我的代码挂载到主机的 /var/www/code
中。
现在当我想在生产中发布我的东西时,我有两个疑问
- 我是否遵循相同的过程并使用部署脚本更新生产主机中的代码
- 或者我的生产映像没有任何主机安装的卷,甚至我将我的代码作为映像的一部分,这样在生产中我不需要从 github.[=21= 中获取任何代码]
我不确定该走哪条路
两者都是有效的做事方式。如果您使用 kubernetes、Amazon 容器服务等,您可能必须使用选项 2,因为它们不支持主机安装的卷。选项 2 也更便携,因为您可以轻松地在多节点 docker 群上移动容器。但是,如果您已经使用 chef 或 cloud-formation 等设置了部署系统,则选项 1 允许使用与您的代码版本无关的更通用的容器。
卷本身永远不能成为映像的一部分,因为它们总是从主机安装的。但是,您可以制作一个通用的基本图像,然后在您的代码库中使用
文件 docker
from my-user/my-generic-base
ADD /code:/var/www/code
当您将下游容器部署到 dockerhub 时,请确保使用版本号部署它,该版本号指示它将 运行.
我正在使用 docker 并在我的开发中将我的代码挂载到主机的 /var/www/code
中。
现在当我想在生产中发布我的东西时,我有两个疑问
- 我是否遵循相同的过程并使用部署脚本更新生产主机中的代码
- 或者我的生产映像没有任何主机安装的卷,甚至我将我的代码作为映像的一部分,这样在生产中我不需要从 github.[=21= 中获取任何代码]
我不确定该走哪条路
两者都是有效的做事方式。如果您使用 kubernetes、Amazon 容器服务等,您可能必须使用选项 2,因为它们不支持主机安装的卷。选项 2 也更便携,因为您可以轻松地在多节点 docker 群上移动容器。但是,如果您已经使用 chef 或 cloud-formation 等设置了部署系统,则选项 1 允许使用与您的代码版本无关的更通用的容器。
卷本身永远不能成为映像的一部分,因为它们总是从主机安装的。但是,您可以制作一个通用的基本图像,然后在您的代码库中使用
文件 dockerfrom my-user/my-generic-base
ADD /code:/var/www/code
当您将下游容器部署到 dockerhub 时,请确保使用版本号部署它,该版本号指示它将 运行.