在生产中使用撰写
预计阅读时间: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_VERIFY
DOCKER_CERT_PATH
设置环境变量后,所有常规docker-compose
命令都无需进一步配置即可使用。