我有两个需要相互交互的 ddev 项目。当遇到一些问题时,我会检查连接的已解析 IP。
我通过 ssh 进入 project1 并 ping project2 来完成此操作(ping project2.ddev.local
)
域名解析为 127.0.0.1
因此,我发送到该域的每个请求都将保留在当前容器中,并且不会路由到其他项目。
重现步骤:
启动两个单独的 ddev 容器并通过 ssh 连接到其中之一。尝试使用 ddev 域 ping 另一个项目。
是否有一个解决方案可以让两个(或更多)项目可以相互交互?
编辑 2019-01-08:实际上只需容器的 docker 名称即可轻松完成此操作,无需额外的 docker-compose 配置。对于数据库容器来说ddev-<projectname>-db
。因此,您可以使用主机名访问名为“d8composer”的项目的数据库容器ddev-d8composer-db
;例如mysql -udb -pdb -h ddev-d8composer-db db
这是另一种技术,实际上does有两个项目相互通信。
假设您有两个名为project1 和project2 的项目,并且您希望project2 能够访问project1 中的db 容器。
将 .ddev/docker-compose.extradb.yaml 添加到项目2的 .ddev 文件夹中,内容如下:
version: '3.6'
services:
web:
external_links:
- ddev-project1-db:proj1-db
现在,可以从project2 上的Web 容器访问project1 的数据库容器。例如,您可以mysql -h proj1-db
来自project2 Web 容器内。
请注意,这通常是一个坏主意,最好不要有两个dev项目相互依赖,最好找出尽可能简单的开发环境。如果您只需要额外的数据库,您可能想尝试如何在 ddev 中创建并加载第二个数据库?。如果您只需要一个额外的 Web 容器作为 API 服务器或其他什么,其他答案更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)