我正在设置一个 gitlab-ci 进程,但我无法理解我应该如何管理我的秘密......</p>
所以我已经成功启动了一个 gitlab/gitlab-runner 作为 docker 容器,并从 gitlab/dind 注册了一个 docker runner。
在这种情况下,我想要构建的东西只是从 Dockerfile 构建一个 docker 映像,填充缓存以供其他 ci 集成测试构建稍后使用。这是通过将其推送到我的私人 docker 注册表来实现的。在这种情况下,我的 .gitlab-ci.yml 定义只是:
build_image:
script:
- docker build -t ensime/ensime-atom-ci .
- docker tag ensime/ensime-atom-ci docker.woodenstake.se/ensime/ensime-atom-ci
- docker push docker.woodenstake.se/ensime/ensime-atom-ci
看起来很简单,但当然我在这里没有信用,所以它失败了:
我刚从无人机过来,为此我生成了一个 .sec 文件。
但在这里我应该登录,对吧?所以我在这里读过
问题是因为我从 dockerized gitlab/gitlab-runner 映像中运行 gitlab-runner,那里似乎甚至没有 docker cli?
viktor@i7:/var/lib$ sudo docker exec -it gitlab-runner docker login
exec: "docker": executable file not found in $PATH
任何提示高度赞赏!
更新澄清:
所以 gitlab-ci 构建日志的尾部是:
012ca7ed9b62: Retrying in 1 seconds
173cd98367a6: Retrying in 1 seconds
92b0661193a5: Retrying in 1 seconds
c12ecfd4861d: Waiting
5f70bf18a086: Retrying in 5 seconds
no basic auth credentials
ERROR: Build failed: exit code 1
主机以 root 身份登录到注册表中。尝试从 docker 容器登录我什至没有 docker cli。
我--docker-privileged
在跑步者的注册上添加了标志。
我猜凭据需要通过主机 -> gitlab-runner -> runner 实例(dind)