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

时间:2018-12-22 12:03:21

标签: python-3.x docker docker-compose gitlab-ci

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

architecture

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

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

tusd minio listener 容器在docker-compose进程中生成,并在 pytest CI工作。 listener 容器将信息写回到postgres数据库。

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

  • export DB_IP =“ $(docker inspect -f'{{range .NetworkSettings.Networks}} {{。IPAddress}} {{end}}'postgres)”
  • 回显“ DB IP地址为$ DB_IP”

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

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

有人有什么主意吗?

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

现在可以使用gitlab共享的运行器成功运行测试了……

0 个答案:

没有答案