繁体   English   中英

CI/CD Gitlab 与 Harbor Registry

[英]CI/CD Gitlab with Harbor Registry

我有 3 台服务器

  1. Gitlab
  2. Gitlab转轮
  3. 港口注册处

当我在 Gitlab 上运行 CI/CD 时,它无法登录到 Harbor Registry。 这是错误。

Get https://172.21.5.247/v1/users/: x509: cannot validate certificate for 172.21.5.247 because it doesn't contain any IP SANs

当我尝试在服务器 Gitlab 和 Gitlab 上登录 docker 时,运行成功。 我将“不安全注册表”添加到两个服务器。 在此处输入图像描述

.gitlab.ci.yml 文件

image: docker:18-git

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: ""
  DOCKER_HOST: tcp://localhost:2375

stages:
  - build
  - push
services:
  - name: docker:dind
    command: ["--insecure-registry=172.21.5.247:443"]

before_script:
  - echo $HARBOR_USERNAME
  - echo -n $HARBOR_PASSWORD | docker login -u $HARBOR_USERNAME -p $HARBOR_PASSWORD $HARBOR_REGISTRY
  - docker version
  - docker info

after_script:
  - docker logout $HARBOR_REGISTRY

Build:
  stage: build
  script:
    - docker pull $HARBOR_REGISTRY_IMAGE:latest || true
    - >
      docker build
      --pull
      --cache-from $HARBOR_REGISTRY_IMAGE:latest
      --tag $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - docker push $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_SHA

Push_When_tag:
  stage: push
  only:
    - tags
  script:
    - docker pull $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - docker tag $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_SHA $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
    - docker push $HARBOR_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME

docker 登录有错误。

从 Harbor 2.2 次要版本开始,您可以创建 Harbor 机器人登录,然后将这些凭据写入Settings -> CI/CD -> Variables

-HARBOR_ROBOT_USER (重要。您必须转义机器人用户名中的 $ 例如。robot$$myuser 机器人帐户名包含“$”将导致...

-HARBOR_ROBOT_PASSWORD

现在您可以在 before 脚本中使用这些变量,如下所示

- HARBOR_ROBOT_PASSWORD=${HARBOR_ROBOT_PASSWORD}
- HARBOR_ROBOT_USER=${HARBOR_ROBOT_USER}

## login process to harbor docker registry
  echo $HARBOR_ROBOT_PASSWORD | docker login --username $HARBOR_ROBOT_USER  --password-stdin ${HARBOR_REGISTRY}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM