[英]CI/CD Gitlab with Harbor Registry
I have 3 server我有 3 台服务器
When I run CI/CD on Gitlab but it cannot login to Harbor Registry.当我在 Gitlab 上运行 CI/CD 时,它无法登录到 Harbor Registry。 This is error.这是错误。
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
When I try login docker on server Gitlab and Gitlab Runner is successfully.当我尝试在服务器 Gitlab 和 Gitlab 上登录 docker 时,运行成功。 I added "insecure-registries" to two server.我将“不安全注册表”添加到两个服务器。
.gitlab.ci.yml file .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
It have error in docker login. docker 登录有错误。
Since Harbor 2.2 minor release you are able to create a harbor robot login, afterwards write these credentials to Settings -> CI/CD -> Variables :从 Harbor 2.2 次要版本开始,您可以创建 Harbor 机器人登录,然后将这些凭据写入Settings -> CI/CD -> Variables :
-HARBOR_ROBOT_USER
(Important. you have to escape the $ in the robot username eg. robot$$myuser robot account name containing "$" will cause... ) -HARBOR_ROBOT_USER
(重要。您必须转义机器人用户名中的 $ 例如。robot$$myuser 机器人帐户名包含“$”将导致... )
-HARBOR_ROBOT_PASSWORD
Now you are able to use these Variables in before script as follows现在您可以在 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.