使用 Gitlab CI 时如何设置 docker 容器的主机名
Posted
技术标签:
【中文标题】使用 Gitlab CI 时如何设置 docker 容器的主机名【英文标题】:How to set the hostname for docker container when using Gitlab CI 【发布时间】:2020-03-08 19:24:30 【问题描述】:我正在尝试使用 docker 映像设置 Gitlab CI 管道。出于某种原因,我需要将 docker 容器的主机名设置为特殊值。
在本地运行 docker 容器时,可以通过指定 -h|--hostname 选项来完成。但是在gitlab的官方帮助文档中,在.gitlab-ci.yml文件中设置'image'似乎只支持'name'和'entrypoint'关键字。
有没有设置 docker 容器的主机名?
【问题讨论】:
【参考方案1】:最后我自己从这个页面找到了一个解决方案:https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersdocker-section
这是我的步骤:
-
运行“gitlab-runner register”注册一个运行器并选择docker
作为执行人。
打开 /etc/gitlab-runner/config.toml 文件。
将 'hostname = "xxxx"' 插入到 '[runners.docker]' 部分
注册的跑步者。
要限制将使用第 3 步中设置的主机名的 docker 容器,您可以:
将 'allowed_images = ["xxx:xxx"]' 插入已注册跑步者的 '[runners.docker]' 部分。 为跑步者设置一些标签,并在 .gitlab-ci.yml 文件中指定“标签”和“图像”。【讨论】:
我尝试在我的 gitlab-ci.yml 文件的before_script:
部分下运行gitlab-runner register
,但得到“找不到命令”,所以我认为这不是你使用它的方式。您知道在 docker 容器运行后更改主机名的方法吗?
@JoeTidee 我在安装了 docker-ce 的测试操作系统下运行gitlab-runner register
,只需在 gitlab-ci.yml 中指定 docker 映像。容器将在管道期间由 gitlab 创建和销毁。您似乎正在尝试在现有跑步者正在执行的作业中注册一个新跑步者,并且跑步者环境下没有gitlab-runner
。要更改容器的主机名,您可以试试这个:serverfault.com/questions/716719/…以上是关于使用 Gitlab CI 时如何设置 docker 容器的主机名的主要内容,如果未能解决你的问题,请参考以下文章
如何使用多个 docker 设置 Gitlab CI E2E 测试
如何正确设置环境变量 Gitlab CI/CD 和 Docker
如何更新 Gitlab.com CI 中使用的 docker 镜像
在基于 docker 的 GitLab CI 设置中为 maven 存储 settings.xml 的位置