gitlab runner执行任务失败

  • Choerodon平台版本: 0.10.0

  • 遇到问题的执行步骤:
    gitlab runner执行到push镜像到私有harbor内失败报错

  • 报错日志:

$ docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
The push refers to a repository [harbor.cedarhd.com/operation-helloworld/nginx]
26c677fb4aa7: Preparing
9e19e687fd42: Preparing
14604828873a: Preparing
16174e87921f: Preparing
denied: requested access to the resource is denied
ERROR: Job failed: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1
  • 疑问:
    创建项目时,联动在harbor内创建的项目是公开public的,本来部署devops时就已经指定了harbor的admin账号密码了,理论上不会出现如报错日志显示的禁止push的情况呀。

部署runner时你是否指定了 harbor的 admin密码呢

必须已经指定了harbor的账号密码了呢!

你本地测试下直接push是否有问题

CI文件中有docker login 语句吗?

试了本地可以直接push的。
.gitlab-ci.yml文件内是没有docker login语句的,感觉也不应该要求显示login吧?

.gitlab-ci.yml文件如下:

image: registry.choerodon.com.cn/tools/cibase:0.5.0

stages:
  - chart_build

chart_build:
  stage: chart_build
  script:
    - docker build --pull -t ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} .
    - docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
    - chart_build

.auto_devops: &auto_devops |
    curl -o .auto_devops.sh \
        "${CHOERODON_URL}/devops/ci?token=${Token}&type=front"
    source .auto_devops.sh

before_script:
  - *auto_devops

请参照最新模板进行CI文件编写哈,需要添加docker login命令

谢谢,加了docker login就可以了:
- docker login -u ${DOCKER_USER} -p ${DOCKER_PWD} ${DOCKER_REGISTRY}

我是参考这份文档才踩的坑:
创建一个nginx示例

建议把相关文档更新一下啦。

感谢反馈