Compose 生产实践

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

修改 Compose 文件以适配生产

你可能要修改你的应用配置以使它可以生产就绪的。这些变化包括:

  • 移除程序代码绑定的卷,以使得代码运行在容器中并且不能被外部更改

  • 在主机上绑定不同的端口

  • 设置不同的环境变量,如调整日志级别降低输出,或者指定外部服务的设置如电子邮件服务器

  • 指定重启策略,如 restart: always 以避免停机

  • 添加额外的服务,如日志收集服务

基于这些原因,可以考虑定义一个附加的 Compose 文件,如 production.yml,指定生产适用的配置。这个配置只需要包含源 Compose 文件需要变更的部分,以覆盖源文件创建新的配置。

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 依赖的任何服务。