gitlab 管道运行失败

问题描述 投票:0回答:1

从今天开始,当尝试在 gitlab 中生成图像时,管道失败,原因在行中,它尝试执行 Get "https://registry-1.docker.io/v2/" 未经授权返回。我一直在寻找,这是因为 gitlab 已经弃用了对注册令牌的支持。 有谁知道如何重新验证“https://registry-1.docker.io/v2/” 运行管道生成图像? 下面我附加了运行管道时的输出。 谢谢。

Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)
  on blue-3.shared.runners-manager.gitlab.com/default zxwgkjAP, system ID: s_284de3abf026
  feature flags: FF_USE_IMPROVED_URL_MASKING:true
Preparing the "docker+machine" executor 00:36
Using Docker executor with image docker:latest ...
Starting service docker:dind ...
Pulling docker image docker:dind ...
Using docker image sha256:14abbb9f5ef7fd32d8da5c0ca58040fc7d28ed813c053f6faa8be213afcb469a for docker:dind with digest docker@sha256:064b3ab5253f812c4fa076b74910435df0c8c7c3e7321330592f2ee50c894619 ...
Waiting for services to be up and running (timeout 30 seconds)...
Pulling docker image docker:latest ...
Using docker image sha256:14abbb9f5ef7fd32d8da5c0ca58040fc7d28ed813c053f6faa8be213afcb469a for docker:latest with digest docker@sha256:064b3ab5253f812c4fa076b74910435df0c8c7c3e7321330592f2ee50c894619 ...
Preparing environment 00:01
Running on runner-zxwgkjap-project-15858045-concurrent-0 via runner-zxwgkjap-shared-1683734595-b9d8ae71...
Getting source from Git repository 00:03
$ eval "$CI_PRE_CLONE_SCRIPT"
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/airgo/air-go-healthcare-system/.git/
Created fresh repository.
Checking out bcaa88b2 as detached HEAD (ref is pius_dev)...
Skipping Git submodules setup
Executing "step_script" stage of the job script 00:01
Using docker image sha256:14abbb9f5ef7fd32d8da5c0ca58040fc7d28ed813c053f6faa8be213afcb469a for docker:latest with digest docker@sha256:064b3ab5253f812c4fa076b74910435df0c8c7c3e7321330592f2ee50c894619 ...
$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CONTAINER_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://registry-1.docker.io/v2/": unauthorized: incorrect username or password
Cleaning up project directory and file based variables 00:00
ERROR: Job failed: exit code 1
gitlab gitlab-ci-runner docker-registry
1个回答
0
投票

您正在尝试使用 GitLab 用户和令牌对 Docker Hub 进行身份验证。 GitLab 用户/令牌仅适用于GitLab 的容器注册表,不适用于 Docker Hub。

自然,您的错误基本上是身份验证问题。您没有使用适当的用户名和密码对 Docker Hub 注册表进行身份验证。如果你想将你的镜像推送到 Docker Hub,你需要使用你的Docker Hub用户名、密码(或access token)来执行此操作。

例如,您可能有一个如下所示的脚本步骤:

script:
  - docker login -u $DOCKER_HUB_USER_NAME -p $DOCKER_HUB_ACCESS_TOKEN

您需要在 CI/CD 设置中设置这些变量。


如果您打算使用 GitLab 的容器注册表,您应该遵循 文档。例如,您可以使用这样的作业配置:

build:
  image: docker:20.10.16
  stage: build
  services:
    - docker:20.10.16-dind
  variables:
    IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG

我一直在寻找,这是因为 gitlab 已经弃用了对注册令牌的支持

我相信你错了。注册令牌会影响自托管运行器如何使用GitLab注册和验证,并且与您如何向 Docker Hub 进行验证或与此相关的工作中发生的任何事情都没有任何关系。无论如何,您使用的是 GitLab.com 共享运行器,而不是自托管运行器,因此这也不适用于这个原因。

© www.soinside.com 2019 - 2024. All rights reserved.