问题以及解决方案

使用gitlab-runner运行docker build命令时报错

前置条件

此gitlab-runner由docker启动并运行。

现象

报错内容如下:

1
ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

解决方案:

  1. 开启docker的 Remote API 访问 2375端口

    ⚠️ 此端口无安全认证措施,所以千万不要暴露在公网。

    我这里采用的是修改 /etc/docker/daemon.json 配置文件

    1
    
    vim /etc/docker/daemon.json
    

    在配置文件中添加如下内容

    1
    2
    3
    
    {
      "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    }
    
  2. .gitlab-ci.yml 文件中添加如下内容

    1
    2
    
    variables:
      DOCKER_HOST: tcp://172.17.0.1:2375
    

更新 Nginx SSL 证书后,CI build 时报错

前置条件

  1. gitlab 以及 gitlab-runner 使用 docker 安装。

  2. 使用 nginx 反向代理 gitlab

  3. nginx 原有的 ssl 证书即将到期,需要更换新的证书。

现象

使用gitlab-runner运行docker build命令时报错:

1
fatal: unable to access 'https://gitlab.example.com/example/example.git/': SSL certificate problem: unable to get local issuer certificate

解决方案

  1. 使用新的 nginx 证书替换原来的 gitlab.example.com.crt gitlab.example.com.key 证书.

  2. 进入 gitlab-ce 镜像,执行 gitlab-ctl hup nginx 重新加载证书。