• gitlab-runner配置与注册


    (1)启动gitlab-runner

    #创建volume
    docker volume create gitlab-runner-my-config
    #docker启动runner 
    docker run -d --name gitlab-my-runner --restart always --net=host \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v gitlab-runner-my-config:/etc/gitlab-runner \
        gitlab/gitlab-runner:latest
    #查看挂载状态
    docker inspect gitlab-my-runner
    #版本查看
    $ docker exec -it gitlab-my-runner gitlab-runner -version 
    Version:      15.2.1
    Git revision: 32fc1585
    Git branch:   15-2-stable
    GO version:   go1.17.9
    Built:        2022-07-26T21:21:20+0000
    OS/Arch:      linux/amd64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    (2)注册gitlab-runner 到git服务器上
    查看注册token
    root登录->菜单->管理员->概览->Runner->注册一个实例runner
    路径http://gitlab.example.com/admin/runners
    在这里插入图片描述
    此处的url为gitlab的ip或者域名;registration-token为界面查询到的注册令牌token;

    docker exec gitlab-my-runner gitlab-runner register -n \
           --url http://192.168.188.134/ \
           --registration-token Tz7Uspg1dZ1sLYsb-qUf \
           --tag-list runInDk \
           --executor docker \
           --docker-image docker \
           --docker-volumes /root/.m2:/root/.m2 \
           --docker-volumes /root/.npm:/root/.npm \
           --docker-volumes /var/run/docker.sock:/var/run/docker.sock \
           --description "runInDk"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结果如下:
    在这里插入图片描述
    (3)查看注册工程的runner以及修改对应的配置;
    root登录->修改运行未标记的作业;这样没有标签的作业也就可以运行;
    在这里插入图片描述

    (4)demo项目的运行

    1. 创建一个空表项目;
      在这里插入图片描述
    2. 新建一个ci/cd
      ci/cd ->选择分支-》配置流水线->直接默认->点击提交
      在这里插入图片描述
    3. 结果查看
      查看结果,问题为域名无法解析
    Running with gitlab-runner 15.2.1 (32fc1585)
      on runInDk 6x_3_-dC
    Preparing the "docker" executor
    00:07
    Using Docker executor with image docker ...
    Pulling docker image docker ...
    Using docker image sha256:87452597cd172fae96865ec2275a5c0ee110511a896d3b439aec6a92592fe9d9 for docker with digest docker@sha256:0c4066e2407fb67b5cb609aa2ea380cdd774445e6be1cd651096167963125af5 ...
    Preparing environment
    00:01
    Running on runner-6x3-dc-project-5-concurrent-0 via localhost.localdomain...
    Getting source from Git repository
    00:02
    Fetching changes with git depth set to 20...
    Initialized empty Git repository in /builds/gitlab-instance-a7f43c36/test-my-runner/.git/
    Created fresh repository.
    fatal: unable to access 'http://gitlab.example.com/gitlab-instance-a7f43c36/test-my-runner.git/': Could not resolve host: gitlab.example.com
    ERROR: Job failed: exit code 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    解决办法如下:
    在容器的/etc/gitlab-runner/config.toml 中添加参数指定http://gitlab.example.com的ip(extra_hosts = [“gitlab.example.com:192.168.188.134”])
    因为容器中没有vim工具,所以就在容器外面直接修改配置文件,修改完之后重启容器;步骤如下:

    步骤一、查看在本地的映射位置:

    docker volume inspect gitlab-runner-my-config
    
    [
        {
            "CreatedAt": "2022-08-16T16:01:14+08:00",
            "Driver": "local",
            "Labels": {},
            "Mountpoint": "/var/lib/docker/volumes/gitlab-runner-my-config/_data",
            "Name": "gitlab-runner-my-config",
            "Options": {},
            "Scope": "local"
        }
    ]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    步骤二、修改配置新增 extra_hosts = [“gitlab.example.com:192.168.188.134”]

    [root@localhost .ssh]# cat /var/lib/docker/volumes/gitlab-runner-my-config/_data/config.toml
    concurrent = 1
    check_interval = 0
    
    [session_server]
      session_timeout = 1800
    
    [[runners]]
      name = "runInDk"
      url = "http://192.168.188.134/"
      token = "xxxxxx"
      executor = "docker"
      [runners.custom_build_dir]
      [runners.cache]
        [runners.cache.s3]
        [runners.cache.gcs]
        [runners.cache.azure]
      [runners.docker]
        tls_verify = false
        image = "docker"
        privileged = false
        disable_entrypoint_overwrite = false
        oom_kill_disable = false
        disable_cache = false
        volumes = ["/root/.m2:/root/.m2", "/root/.npm:/root/.npm", "/var/run/docker.sock:/var/run/docker.sock", "/cache"]
        shm_size = 0
        extra_hosts = ["gitlab.example.com:192.168.188.134"]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    步骤三:容器重启

     docker restart gitlab-my-runner
    
    • 1

    再次执行查看执行结果。
    在这里插入图片描述

    参考:Gitlab runner docker Could not resolve host
    https://stackoverflow.com/questions/50325932/gitlab-runner-docker-could-not-resolve-host
    https://docs.gitlab.com/runner/install/docker.html
    https://docs.gitlab.com/runner/register/index.html#docker

  • 相关阅读:
    [Redis]Zset类型
    如何像我这样创建一个酷炫且能赚钱的网站(使用宝塔安装WordPress搭建子比主题)
    安卓应用的MD5、SHA1值和公钥可以这样知道
    Rviz插件分析(status_panel)
    Java回顾-IO流的体系结构/File文件类的使用
    echarts的bug,在series里写tooltip,不起作用,要在全局先写tooltip:{}才起作用,如果在series里写的不起作用就写到全局里
    ASPICE实操中的那点事儿-底层软件的单元测试该如何做
    react:值得一看的“react哲学”
    04 多表查询
    RK3588 预安装APK
  • 原文地址:https://blog.csdn.net/w329636271/article/details/126368266