zoukankan      html  css  js  c++  java
  • 【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之gitlab runner 关于私有docker仓库配置

    目录

    1.【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之docker+docker compose

    2.【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之gitlab + gitlab runner(docker in docker)

    3.【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之harbor 

    4.【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之gitlab runner 关于私有docker仓库配置 (本篇在此)

    5.【系列】CentOS 7.3 离线安装(无网络环境)CI CD环境之sonarqube配置 

    1.为gitlab runner 所在的机器配置insecure-registries

    因为docker默认是不允许使用http协议进行通信的,所有必须要做此配置,才可以是docker使用http协议连接仓库

    命令如下:

    vim  /etc/docker/daemon.json #如果没有该文件则创建
     
    #添加你的配置
    {
        "registry-mirrors": [
          "http://188.6.7.147"
        ],
        "insecure-registries": ["188.6.7.147"]
    }
    
    #重启docker
    systemctl daemon-load
    systemctl restart docker.service

    重启docker服务后 使用docker login登陆测试以下

    2.修改gitlab runner comfig.toml

    增加docker.sock的映射,配置修改完如下:

    concurrent = 1
    check_interval = 0
    
    [session_server]
      session_timeout = 1800
    
    [[runners]]
      name = "gis-group-runner1"
      url = "http://188.6.7.131/"
      token = "qQZ1p2hETvf94F7hNFJt"
      executor = "docker"
      [runners.custom_build_dir]
      [runners.cache]
        [runners.cache.s3]
        [runners.cache.gcs]
      [runners.docker]
        tls_verify = false
        image = "Docker:19.03.11"
        privileged = true
        disable_entrypoint_overwrite = false
        oom_kill_disable = false
        disable_cache = false
        volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
        shm_size = 0
        pull_policy = "if-not-present"

    3.gitlab-ci.yml的配置

    在gitlab runner docker in docker 中,一定要使用dind的docker镜像在特权模式下运行脚本,这一点需要注意,否则会出现 dial tcp 188.6.7.147:443: connect: no route to host 的错误,具体gitlab-ci.yml配置如下:

    image: docker:latest
    # before_script:
    #    - "docker info"
    #   - curl 188.6.7.147
    #   - docker login -u gitlab -p $CI_JOB_TOKEN $CI_REGISTRY
    
    stages:
        - build
        - docker_build
    
    build:
        stage: build
        image: $CI_REGISTRY/library/mcr.microsoft.com/dotnet/core/sdk:3.1
        script:
           # - dotnet
           # - export DOCKER_HOST="tcp://docker:2375/"
           # - chcp 65001
            
            - "dotnet restore k8s.NET.Demo.sln --interactive --source $NUGET_SOURCE"
            - "dotnet build --no-restore"
           # - "dotnet msbuild restore /p:RestoreSources=$NUGET_SOURCE"
            
    
    docker-build-and-push:
        stage: docker_build
        image: docker:latest
        services:
            # - docker:dind
        script: 
          #  - chcp 65001
            - "docker info"
            - echo $CI_REGISTRY_TOKEN | docker login $CI_REGISTRY -u $CI_REGISTRY_USERNAME --password-stdin 
            - docker build -t $CI_REGISTRY/test.gis/k8s.net.demo:0.1.1 .
            - docker push $CI_REGISTRY/test.gis/k8s.net.demo:0.1.1

     然后提交代码测试,结果如下:

     至此,关于gitlab runner 结合内网harbor私库的配置就完成,这里只讲了关于docker镜像的拉取和推送,关于结合k8s的自动部署没有展开,会在后续文章中记录。

  • 相关阅读:
    DFS染色解决区域分块问题UVALive 6663
    栈之逆波兰
    线段树总结
    区间合并问题
    线段树的开闭区间问题
    离散化
    线段树的学习过程
    BFS的小结
    状态数组哪家强
    卡特兰数。
  • 原文地址:https://www.cnblogs.com/c-supreme/p/gitlab-runner-cicd-use-harbor-docker-registry.html
Copyright © 2011-2022 走看看