【发布时间】:2020-05-20 23:20:50
【问题描述】:
我们正在尝试使用 Docker Hub 来存储我们的 GitLab CI/CD 构建生成和使用的图像,但在使其正常工作时遇到了一些问题。
我已经成功地将 build 阶段中构建的映像推送到 Docker Hub,效果很好,但无法为 rspec 阶段再次拉下它。我收到以下错误:
错误:作业失败:来自守护进程的错误响应:foxsoft/zzz 的拉取访问被拒绝,存储库不存在或可能需要“docker login”:拒绝:请求的资源访问被拒绝(executor_docker.go:192:1s )
我假设这与我在尝试拉下图像时未正确获取登录凭据有关,但我不确定。我们将不胜感激您能提供的任何帮助。
这是我的配置:
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
.ruby_base:
image: ruby:2.5.5
before_script:
- ruby -v
.docker_base:
image: docker:stable
services:
- docker:stable-dind
- postgres:9.6
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
stages:
- build
- test
build:images:
extends: .docker_base
stage: build
script:
- docker build -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
test:rspec:
before_script:
- echo $CONTAINER_TEST_IMAGE
- echo $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
stage: test
services:
- postgres:9.6
variables:
POSTGRES_DB: zzz_test
DB_HOST: postgres
script:
- bundle exec rake db:create RAILS_ENV=test
- bundle exec rake db:schema:load RAILS_ENV=test
- bundle exec rspec --format html --out rspec/index.html --format documentation
我还设置了以下环境变量
CI_REGISTRY_USER我的 docker hub 用户名
CI_REGISTRY_PASSWORD我的 docker hub 令牌
CI_REGISTRY_IMAGE 设置为 foxsoft/zzz(托管在 here - 虽然作为私人仓库,您将无法看到它)
谢谢。
【问题讨论】:
-
你在 Gitlab CI/CD 变量上使用
protected variable吗?
标签: docker gitlab-ci dockerhub