Gitlab CI Runner Docker Executor公开端口

时间:2017-05-27 09:28:32

标签: docker gitlab-ci

我有gitlab ci和gitlab容器。一个项目在gitlab runner注册 使用docker executor。一切都好。我将特权模式设为true。有关于docker run的标志,例如卷共享,特权模式,图像,服务,链接等。但是我在runner.dockers部分找不到有关端口公开的标记。我的目标是运行一个带有容器的管道可以与其端口进行通信。

是否可以使用gitlab runner ci实现此问题。

1 个答案:

答案 0 :(得分:2)

通常这就是服务的用途。您将获取要在其上公开端口的容器并将其定义为服务。这样,没有暴露的端口,但是有一个服务链接可用于容器间通信。这对于Docker执行程序是有效的,在Kubernetes执行程序中,所有服务都是pod的一部分,因此可以直接在localhost上使用。

换句话说:例如,如果您的构建作业需要PostgreSQL在其默认端口5432上运行,那么您只需启动postgres:latest作为您的工作服务。然后,您可以通过postgres:5432使用Docker执行程序和localhost:5432通过Kubernetes执行程序引用它。

如果服务不符合您的使用案例,您可能希望扩展您的问题以确定它们失败的位置,可能还有其他答案。