【发布时间】:2019-04-02 14:49:42
【问题描述】:
我在我的 Divio Cloud 项目的 docker-compose.yml 文件中定义了一项附加服务。
在本地,它按预期工作。除了默认的 web 和 db 容器外,我还得到了我的新容器。
但是,当我将此配置推送到 Divio Cloud 服务器时,它显然根本不起作用,我无法连接到自定义容器。
【问题讨论】:
标签: docker docker-compose divio
我在我的 Divio Cloud 项目的 docker-compose.yml 文件中定义了一项附加服务。
在本地,它按预期工作。除了默认的 web 和 db 容器外,我还得到了我的新容器。
但是,当我将此配置推送到 Divio Cloud 服务器时,它显然根本不起作用,我无法连接到自定义容器。
【问题讨论】:
标签: docker docker-compose divio
如果您的项目需要额外的服务,您应该在 Divio Cloud 上配置它,而不是在 docker-compose.yml 中。 docker-compose.yml 仅用于本地开发目的,部署时忽略。
在 Divio Cloud 项目中,docker-compose.yml 用于编排本地开发环境中的所有服务和容器仅。
在实际的托管环境中,根本没有用到,直接被忽略了。在本地,您的项目具有在 docker-compose.yml 文件中定义的所有容器 - web、db 以及您定义的任何其他内容。
当您的项目部署在托管环境中时,仅使用web 容器。
为了方便起见,其他容器在本地使用,以复制作为基础架构一部分的服务。
例如,您在本地有一个运行 Postgres 数据库的 db 容器。在云基础设施中,web 容器连接到 Postgres 集群。
同样,如果您的云项目中有 Celery,它将使用作为云基础设施的一部分提供的支持服务,但是当您在本地设置相同的项目时,它将在新的 Docker 容器中构建它们。
更多信息请访问docker-compose.yml reference in the Divio Cloud Developer Handbook。
注意:我是 Divio 团队的成员。这个问题是我们经常通过我们的支持渠道看到的一个问题。
【讨论】: