aug*_*ato 7 gitlab docker gitlab-ci-runner
我正在尝试使用 gitlab-ci 将我的图像推送到我的 docker repositoy 存储库,但我收到错误消息:
拒绝:请求访问资源被拒绝错误:作业失败:退出代码 1
我的.gitlab-ci.yml
# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest
services:
- docker:dind
before_script:
- docker version
- docker-compose version
- docker login -u $USER -p $PASS index.docker.io
build-master:
stage: build
script:
- apk add --no-cache py-pip
- pip install docker-compose
- docker build --pull -t index.docker.io/$REPOSITORY .
- docker push index.docker.io/$REPOSITORY
only:
- master
tags:
- docker
build:
stage: build
script:
- docker build --pull -t index.docker.io/$REPOSITORY:latest .
- docker push index.docker.io/$REPOSITORY:latest
except:
- master
tags:
- docker
Run Code Online (Sandbox Code Playgroud)
他正确地构建了图像,但是当去推
The push refers to repository [docker.io/$REPOSITORY]
fc57a6fc4d42: Preparing
09b261acf68f: Preparing
04ea2928643d: Preparing
1132926ce5ae: Preparing
de09db5a8cb2: Preparing
0b75a2e7b59f: Preparing
d01d9d1902f1: Preparing
3dab7cdf2eed: Preparing
1da4e8fff32b: Preparing
23c522961836: Preparing
a51421a28d33: Preparing
8b1c06910686: Preparing
30e8a3d88591: Preparing
fd8fae5cd65a: Preparing
6b68dfad3e66: Preparing
cd7100a72410: Preparing
0b75a2e7b59f: Waiting
d01d9d1902f1: Waiting
3dab7cdf2eed: Waiting
1da4e8fff32b: Waiting
23c522961836: Waiting
a51421a28d33: Waiting
8b1c06910686: Waiting
30e8a3d88591: Waiting
fd8fae5cd65a: Waiting
6b68dfad3e66: Waiting
cd7100a72410: Waiting
denied: requested access to the resource is denied
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
我更改 $REPOSITORY 的存储库名称仅用于粘贴此处。
我已经在 hub.docker.com 上授予了正确的权限,因为用户已经进行了 docker 登录,并且在存储库上有一个合作者。
谢谢
使用$CI_REGISTRY和$CI_PROJECT_PATH.
示例代码:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY/$CI_PROJECT_PATH
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/name:latest
- docker push $CI_REGISTRY/$CI_PROJECT_PATH/name:latest
Run Code Online (Sandbox Code Playgroud)
我认为问题在于登录在任务的实际部分中before_script而不是在script任务的实际部分中。
遗憾的是,因为我觉得将登录部分纳入该before_script部分,然后执行该script部分中所需的任何与 Docker Hub 相关的操作更“正确”。
但恐怕它不起作用——每个script部分都需要包含自己的登录步骤。
| 归档时间: |
|
| 查看次数: |
5874 次 |
| 最近记录: |