在生产中使用撰写

预计阅读时间:2分钟

在开发中使用Compose定义应用程序时,可以使用此定义在不同的环境(例如CI,登台和生产)中运行应用程序。

部署应用程序最简单的方法是在单个服务器上运行它,类似于运行开发环境的方式。如果要扩展应用程序,则可以在Swarm群集上运行Compose应用程序。

修改您的撰写文件以进行生产

您可能需要更改您的应用程序配置,以使其可以投入生产。这些更改可能包括:

  • 删除应用程序代码的所有卷绑定,以使代码保留在容器内,并且不能从外部进行更改
  • 绑定到主机上的不同端口
  • 设置环境变量的方式有所不同,例如减少日志记录的冗长程度,或为外部服务(例如电子邮件服务器)指定设置
  • 指定重启策略,如restart: always避免停机
  • 添加额外的服务,例如日志聚合器

因此,请考虑定义一个额外的Compose文件,例如production.yml,该文件 指定了适合生产的配置。该配置文件只需要包含您想要对原始Compose文件进行的更改。可以将其他Compose文件应用于原始文件docker-compose.yml以创建新配置。

获得第二个配置文件后,告诉Compose将其与以下-f选项一起使用 :

$ docker-compose -f docker-compose.yml -f production.yml up -d

有关更完整的示例,请参见使用多个撰写文件

部署变更

当您更改应用程序代码时,请记住要重建图像并重新创建应用程序的容器。要重新部署名为的服务 web,请使用:

$ docker-compose build web
$ docker-compose up --no-deps -d web

这首先重建图像web,然后停止,销毁,并重新创建 web服务。该--no-deps标志阻止Compose也重新创建任何web依赖的服务。

在单个服务器上运行Compose

您可以通过适当设置,和环境变量DOCKER_HOST,使用Compose将应用程序部署到远程Docker主机 。DOCKER_TLS_VERIFYDOCKER_CERT_PATH

设置环境变量后,所有常规docker-compose 命令都无需进一步配置即可使用。

撰写文件

组成编排容器生产