簡體   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