首页 > 解决方案 > 如何从 Gitlab-CI 中的子 Docker 容器访问 Postgres 服务?如何访问 postgres 服务或 gitlab 共享运行器的 IP 地址?

问题描述

我已经使用如下所示的架构设置了一个 gitlab-ci 构建。

建筑学.

侦听器容器无法使用主机名“<em>postgres”与 postgres 容器通信。主机名无法识别。侦听器容器如何与 postgres 数据库实例通信?

文档建议将postgres 实例配置为.gitlab-cy.yml中的服务。.gitlab-ci.yml中定义的 CI 作业能够通过服务名称“ postgres ”连接到 postgres 实例。

tusdminiolistener容器在 docker-compose 进程中生成,在pytest CI作业中触发。侦听器容器将信息写回 postgres 数据库。

随后,我考虑使用 postgres 服务的 IP 地址代替主机名。在 pytest CI 构建作业中,我尝试使用以下 bash 命令序列确定 postgres 数据库的 IP 地址:

但是,postgres 不被识别为容器。

如何确定 postgres 服务的 IP 地址?或者我可以使用共享运行器的 IP 地址吗?我如何确定这一点?

有人有什么想法吗?

更新 11/1/2019 通过将所有服务移动到 docker-compose 文件中解决,以便它们可以相互通信。这包括 postgres 容器等……在测试环境初始化中进行了一些重构之后,现在通过 docker-compose run 命令调用测试。

现在可以使用 gitlab-shared runner 成功运行测试了……</p>

标签: python-3.xdockerdocker-composegitlab-ci

解决方案


推荐阅读