jsc*_*sse 10 gitlab docker gitlab-ci gitlab-ci-runner
我的总体目标是安装一个自托管的 gitlab-runner,该运行程序仅限于使用我自己的 docker 注册表中准备好的 docker 镜像。
为此,我有一个 system.d 配置,如下所示:
/etc/systemd/system/docker.service.d/allow-private-registry-only.conf
BLOCK_REGISTRY='--block-registry=all'
ADD_REGISTRY='--add-registry=my.private.registry:8080'
Run Code Online (Sandbox Code Playgroud)
这样,docker pull
就只允许从中提取图像my.private.registry/
。
在我设法使其工作后,我想清理我的本地注册表并删除旧的docker images
. 正是在这个过程中,我偶然发现了一个名为 docker 镜像,该镜像可能是gitlab-runnergitlab/gitlab-runner-helper
本身使用的某个组件,并且可能是从.docker.io
docker.io
现在我想知道使用gitlab-runner时是否可能/建议阻止图像?
任何提示表示赞赏!
Mik*_*048 26
我觉得我有责任扩展已接受的答案(顺便说一句,这很棒),因为“处理”这个词基本上告诉我们的不多,它太抽象了。让我更详细地解释整个流程:
当构建即将开始时,gitlab-runner会创建一个docker卷(如果需要,您可以使用dockervolumels观察它)。该卷将作为您在构建期间使用的缓存和工件的存储。
第二件事 - 每个阶段至少涉及 2 个容器:gitlab-runner-helper、容器以及从您指定的映像(在 .gitlab-ci.yml 或 config.toml 中)创建的容器。gitlab-runner-helper容器的作用本质上只是在上述 docker 卷中克隆远程 git 存储库(您正在构建的)以及缓存和工件。
它可以做到这一点,因为 gitlab-runner-helper 图像本身有 2 个重要的实用程序:git(显然 - 克隆存储库)和gitlab-runner-helper二进制文件(该实用程序可以拉取和推送工件、缓存)
@Nicolas 很好地描述了有关从中提取gitlab-runner-helper 的注册表的其余详细信息。我附加此评论只是为了某人,也许他想知道这个偷偷摸摸的“处理”一词的确切含义。
希望它有帮助,祝你有美好的一天,我的朋友!
Nic*_*ter 19
gitlab-runner-helper
镜像由 GitLab Runner 使用来处理 、或执行器的Git docker
、工件和缓存操作。docker+machine
kubernetes
由于您更喜欢从私有注册表中提取映像,因此您可以覆盖辅助映像。您的配置可能是:
[[runners]]
(...)
executor = "docker"
[runners.docker]
(...)
helper_image = "my.private.registry:8080/gitlab/gitlab-runner-helper:tag"
Run Code Online (Sandbox Code Playgroud)
请确保该映像存在于您的注册表中,或者您的配置启用了代理docker hub或registry.gitlab.com
. 最后,您需要至少运行 Gitlab runner 版本 13.7 并启用FF_GITLAB_REGISTRY_HELPER_IMAGE
功能标志。
归档时间: |
|
查看次数: |
20728 次 |
最近记录: |