zoukankan      html  css  js  c++  java
  • gitlab和gitlab-runner的一个小坑

    情况说明:
    一台主机上使用yum方式安装的gitlab,使用docker方式安装的gitlab-runner
    主机上的/etc/hosts添加了一条自定义的解析域名

    192.168.80.201 gitlab.example.com
    

    windows客户端上的hosts文件也添加了这个。

    gitlab的配置文件/etc/gitlab/gitlab.rb中有关设置如下

    cat /etc/gitlab/gitlab.rb|grep external_url | grep -v "^#"
    external_url 'http://gitlab.example.com'
    

    /var/opt/gitlab/gitlab-rails/etc/gitlab.yml文件中显示的也是

    ## GitLab settings
    gitlab:
      ## Web server settings (note: host is the FQDN, do not include http://)
      host: gitlab.example.com
      port: 80
      https: false
    

    这样一来的结果是项目中克隆的地址都是使用的gitlab.example.com,同时gitlab-runner上添加的话显示的url地址也是gitlab.example.com
    windows客户端上使用浏览器访问这个域名可以打开并登录gitlab上,同时也可以创建项目往gitlab上推送拉取等。

    但是结合gitlab-runner使用的时候,新建了一个.gitlab-ci.yml文件,想实现windows客户端这边提交代码到gitlab上后,直接开始CICD功能。

    但是在执行CICD功能的时候,提示没法解析gitlab.example.com这个域名

    就算把用容器起来的docker-runner的网络换成host方式,采用宿主机的/etc/hosts配置后还是出现上述同样的问题。

    临时解决办法,修改/var/opt/gitlab/gitlab-rails/etc/gitlab.yml文件中host为gitlab所在主机ip

    ## GitLab settings
    gitlab:
      ## Web server settings (note: host is the FQDN, do not include http://)
      host: 192.168.80.201
      port: 80
      https: false
    

    这样一来拉取代码的话使用的就是ip地址。

    问题分析:
    在执行pipeline job的时候,gitlab runner会使用指定的image临时build一个container来执行job,那么首先在container中会先pull你的project的代码,但是使用默认的桥接网络没法访问到gitlab.example.com对应的地址

    解决办法:
    在gitlab-runner配置文件中添加额外的域名解析,在运行时拉取gitlab上的仓库文件时需要使用的,在 [runners.docker] 下

    添加多个的示例:

    [runners.docker]
        extra_hosts = ["gitlab.example.com:192.168.80.201","jdd.io:192.168.2.162"]
    
  • 相关阅读:
    已知用经纬度表示的两点,求两点之间的直线距离
    linux 管道--转
    Five ways to maximize Java NIO and NIO.2--reference
    java获取当前方法
    事务策略: 了解事务陷阱--转
    实例详解 EJB 中的六大事务传播属性--转
    全面分析 Spring 的编程式事务管理及声明式事务管理--转
    Spring 事务管理高级应用难点剖析--转
    Java NIO——Selector机制源码分析---转
    Java NIO类库Selector机制解析--转
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14668269.html
Copyright © 2011-2022 走看看