我的总体目标是安装一个自托管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'
这样,docker pull
就只能从
my.private.registry/
拉取图像。在我设法使其工作后,我想清理我的本地注册表并删除旧的
docker images
。正是在这个过程中,我偶然发现了一个名为
gitlab/gitlab-runner-helper
的 docker 镜像,它可能是gitlab-runner 本身使用的某个组件,并且可能是从
docker.io
中提取的。现在我想知道在使用
gitlab-runner
时是否可能/建议阻止来自
docker.io
的图像?
任何提示表示赞赏!
当构建即将开始时,gitlab-runner 会创建一个 docker 卷(如果需要,您可以使用
第二件事 - 每个阶段至少涉及 2 个容器:gitlab-runner-helper、容器以及从您指定的镜像(在 .gitlab-ci.yml 或 config.toml 中)创建的容器。
它可以做到这一点,因为 gitlab-runner-helper 镜像本身有 2 个重要的实用程序:
gitlab-runner-helper 二进制文件(该实用程序可以拉取和推送工件、缓存)
gitlab-runner-helperhandle”一词到底意味着什么。 希望它有帮助,祝你有美好的一天,我的朋友!
用于处理
docker
、docker+machine
或 kubernetes
执行器的 Git、工件和缓存操作。由于您更喜欢从私有注册表中提取映像,因此您可以覆盖辅助映像。您的配置可能是:
[[runners]]
(...)
executor = "docker"
[runners.docker]
(...)
helper_image = "my.private.registry:8080/gitlab/gitlab-runner-helper:tag"
请确保镜像存在于您的注册表中,或者您的配置启用代理
或
registry.gitlab.com
。对于最后一个,您需要至少运行 Gitlab runner 版本 13.7 并启用 FF_GITLAB_REGISTRY_HELPER_IMAGE
功能标志。