您现在的位置是:亿华云 > IT科技
GitLabCI作业中如何使用私有仓库镜像?
亿华云2025-10-03 02:22:26【IT科技】3人已围观
简介如果是在vm或者物理机注册的docker类型执行器的runner,则在本机执行docker login之后就可以了。但是现在是通过docker运行的gitlabrunner 并且使用的也是docker
如果是作业中何在vm或者物理机注册的docker类型执行器的runner,则在本机执行docker login之后就可以了。使用私但是仓库现在是通过docker运行的gitlabrunner 并且使用的也是docker类型的执行器。网站模板此时我们就需要在项目或者Runner配置镜像仓库的镜像认证信息了。
注意:如果提前把镜像下载到本地供runner使用,作业中何比每次都下载要快一些的使用私。可以设置镜像的仓库拉取策略if-not-present。
首先,镜像我们用docker启动runner,作业中何并注册执行器类型为docker的使用私runner并启动runner。云服务器
## 注册 docker run -itd --rm -v /data/devops/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0 register \ --non-interactive \ --executor "docker" \ --url "http://gitlab.idevops.site/" \ --registration-token "4qCqD8pEoLzvgzzVn5oy" \ --description "devops-runner" \ --tag-list "build,仓库deploy" \ --run-untagged="true" \ --locked="false" \ --docker-image alpine:latest \ --access-level="not_protected" ## 运行docker run -itd \ --name gitlab-runner \ --restart=always \ -v /data/devops/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:v12.9.0您可以采用两种方法来访问私有注册表。两者都需要设置环境变量DOCKER_AUTH_CONFIG来存储身份验证信息 。镜像
1作业级:要配置一个作业以访问专用注册表,作业中何请添加 DOCKER_AUTH_CONFIG为作业变量。使用私
2平台级(每个runner):要配置Runner以便其所有作业都可以访问私有注册表,仓库在Runner的配置中添加DOCKER_AUTH_CONFIG到环境变量中。
获取凭证信息使用docker login生成docker login registry.example.com:5000 --username my_username --password my_password然后复制~/.docker/config.json的内容。
[root@zeyang-nuc-service config]# cat ~/.docker/config.json { "auths": { "192.168.1.200:8088": { "auth": "YWRtaW46SGFyYm9yMTIzNDU=" }, }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.5 (linux)" }使用base64生成
echo -n "my_username:my_password" | base64 # 示例bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=# 格式{ "auths": { "registry.example.com:5000": { "auth": "(Base64 content from above)" } }}配置凭证信息
格式化数据:{ "auths": { "192.168.1.200:8088": { "auth": "YWRtaW46SGFyYm9yMTIzNDU="}}项目级配置
将认证信息以变量的方式存储在项目或者ci文件中
stages: - test variables: DOCKER_AUTH_CONFIG: { "auths": { "192.168.1.200:8088": { "auth": "YWRtaW46SGFyYm9yMTIzNDU="}}} test: stage: test tags: - build image: 192.168.1.200:8088/spinnaker01/spinnaker01-nginx-demo:RELEASE-1.1.1 script: - sleep 20系统级配置将认证信息以变量的香港云服务器方式存储在runner配置文件中
[[runners]] environment = [DOCKER_AUTH_CONFIG={ "auths": { "192.168.1.200:8088": { "auth": "YWRtaW46SGFyYm9yMTIzNDU="}}}]测试验证
#DevOps# #GitLab# #持续交付#
很赞哦!(66)
上一篇: 联想产业元宇宙实现新突破 以数实融合引领行业智能化变革
下一篇: 可持续数据中心的时代