我有gitlab ci和gitlab容器。使用docker executor将项目注册到gitlab runner。一切都很好。我将特权模式设置为true。有关于docker运行的标志,如卷共享,特权模式,图像,服务,链接等。但我在runner.dockers部分找不到关于端口暴露的标志。我的目标是运行一个容器可以与其端口通信的管道。
是否可以使用gitlab runner ci实现此问题。
发布于 2017-10-01 17:26:07
通常情况下,这就是服务的用途。您将获取要在其上公开端口的容器,并将其定义为服务。这样,没有公开的端口,但有一个服务链接,您可以使用它进行容器间的通信。这对于Docker executor是有效的,在Kubernetes executor中,所有服务都是pod的一部分,因此可以直接在localhost
上使用。
换句话说:例如,如果您的构建作业需要在其默认端口5432上运行的PostgreSQL,则只需将postgres:latest
作为作业的服务启动即可。然后,您可以通过Docker executor的postgres:5432
和Kubernetes executor的localhost:5432
引用它。
如果服务不适合您的用例,您可能想要扩展您的问题,了解它们在哪里失败,可能会有另一个答案。
https://stackoverflow.com/questions/44215201
复制相似问题