【发布时间】:2017-08-13 05:31:07
【问题描述】:
我希望使用 Docker-Compose 在 Docker 上实现一个 symfony 应用程序。我至少会有以下容器:
- Nginx
- Rabbitmq 服务器
- PHP-FPM
- MySQL
- 太阳能
目前我们也有使用上述设置的开发环境。
Symfony 应用程序存储在本地(主机),然后在 PHP-FPM 容器上使用一个卷,以便它可以读取应用程序 - 这很有效。我们bash进入php-fpm容器运行composer/app/console命令。
我们还手动运行消费者(Symfony 命令)来消费来自 rabbitmq 服务器的消息。
我在生产中有哪些选择?
1) 我可以创建一个运行应用程序的容器,然后允许其他容器使用它吗?我看到 php-fpm 容器需要访问应用程序代码 - 但我还想创建一个容器来运行消费者 - 将要运行的服务名称传递给容器 - 这意味着我可以拥有一个单一的图像可以灵活启动以处理来自任何队列的消息。此选项中的日志/缓存会发生什么情况?
2) 应用程序是否存储在每个需要它的图像中?这是我最不喜欢的选项,因为那时更新我需要构建每个图像的应用程序
3) 我还没有探索过的东西?
我想允许对应用程序进行轻松更新——也许是脚本化的东西,但我也想尽量减少停机时间——我可以使用 haproxy 或类似的东西来做到这一点——有其他人有运行多容器 symfony 应用程序的经验吗在生产中?
【问题讨论】:
-
我们目前采用选项2
-
@Matteo 您如何对应用程序执行更新?某种脚本来重建所有图像?并重新启动容器?
-
我们使用 docker-cloud 与 github hook 重建容器
标签: php symfony docker docker-compose