Dar*_*ber 3 gitlab-ci gitlab-ci-runner
我在将使用 gitlab-runner 构建的映像推送到 gitlab 存储库时遇到问题。
我的 gitlab-ci.yml:
image: docker:latest
services:
- docker:dind
stages:
- build
- release
variables:
TEST_IMAGE: registry.gitlab.com/myhost/haproxy:$CI_COMMIT_REF_NAME
RELEASE_IMAGE: registry.gitlab.com/myhost/haproxy:latest
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN gitlab.com
build:
stage: build
script:
- docker build --pull -t $TEST_IMAGE .
- docker push $TEST_IMAGE
release:
stage: release
script:
- docker pull $TEST_IMAGE
- docker tag $TEST_IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
only:
- master
Run Code Online (Sandbox Code Playgroud)
docker 登录有效 - 我得到“登录成功” - 但当涉及到推送操作时,我得到:
$ docker push $TEST_IMAGE
The push refers to repository [registry.gitlab.com/myhost/haproxy]
d77ab2f42dd4: Preparing
c70258f465dd: Preparing
96b45c1aa07c: Preparing
28587e66f3e8: Preparing
21b59fc0e3a3: Preparing
9c46f426bcb7: Preparing
9c46f426bcb7: Waiting
denied: access forbidden
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
跑步者在我自己的服务器上,我正在推送到 gitlab.com
我还检查了我的本地计算机,在脚本中执行终端命令 - 登录、构建和推送 - 一切正常,但如果我使用运行器在本地运行,注册它并获取作业,我也会被禁止访问错误。
所以我认为问题出在跑步者身上,博什么。我比较了 gitlab-runner 从 10.6 到最新的 11.0 几个版本的行为
有任何想法吗?
所以问题是注册表地址错误 - 它应该是registry.gitlab.com
它误导了我,即使没有“registry”前缀,它也会在终端中显示“已登录”,因此最好的解决方案是在 gitlab-ci.yml 中登录期间使用内置变量:
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4457 次 |
| 最近记录: |