参照 Jenkins 的官方文档 搭建环境,搭建后有两个容器,一个是 docker:dind
,另一个是 jenkins/jenkins
。
公司网络管理比较严格,宿主机无法访问外网,包管理器、镜像等只能用内网地址。宿主机已经配置好了镜像地址,且在宿主机进行构建时,正常。
但是在 Jenkins 中构建镜像时,却构建失败。解决一系列问题后,发现构建镜像时,输出中有如下内容:
Step 1/13 : FROM jenkins/jenkins:latest
Get "https://registry-1.docker.io/v2/": context deadline exceeded
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我初步认定是没有配置好镜像地址。在两个容器内执行 docker system info
,发现没有 Registry Mirrors
项。但是容器内部无法像宿主机一样对 docker 进行配置,网上也查不到这种情况下如何配置镜像地址。
在不改变 “以 Docker 方式运行 Jenkins” 的前提下,如何配置?
配置文件原理上和官网教程基本一致,只是改为在内网完成全部操作,就不贴了。