• Linux Docker部署GitLab、GitLab Runner


    文档

    • https://docs.gitlab.com/ee/install/docker.html
    • https://docs.gitlab.com/runner/install/docker.html
    • https://docs.gitlab.com/15.5/runner/register/index.html#docker

    部署GitLab

    sudo docker run --detach \
      --hostname gitlab.example.com \
      --publish 80:80 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      --shm-size 256m \
      gitlab/gitlab-ee:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    --publish 第一个端口是本地端口,第二个端口是容器端口,下面的命令最终会让GitLab运行在 80 端口,对外暴露的域名是 gitlab.example.com,当然对于局域网,要配置dns解析才能用域名访问,可以直接用localhost127.0.0.1主机ip 访问.

    部署GitLab Runner

    docker run -d --name gitlab-runner --restart always \
      --add-host=gitlab.example.com:192.168.65.135 \
      -v /srv/gitlab-runner/config:/etc/gitlab-runner \
      -v /var/run/docker.sock:/var/run/docker.sock \
      gitlab/gitlab-runner:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5

    --add-host=gitlab.example.com:192.168.65.135 是向容器添加dns解析

    注册GitLab Runner

    docker run --rm -it \
    --add-host=gitlab.example.com:192.168.65.135 \
    -v /srv/gitlab-runner/config:/etc/gitlab-runner \
    gitlab/gitlab-runner register
    
    • 1
    • 2
    • 3
    • 4

    注册用到的容器:

    • 也是用 gitlab/gitlab-runner 这个镜像
    • 提供了 register 命令
    • 与上一步共享同一个持久化卷 /etc/gitlab-runner ,参考回答
    • --rm 退出之后会销毁

    问题

    runner跑ci时拉取不到仓库代码,解析不了域名,需要配置 clone_url,参考官方文档

    # 进入runner容器内
    docker exec -it runner容器id /bin/bash
    
    # 编辑runner的配置文件
    vim /etc/gitlab-runner/config.toml
    
    # 添加配置
    # clone_url = “http://192.168.65.135/”
    
    # 这里还可以为每个镜像都配置额外的host,例如
    # extra_hosts = ["other-host:192.168.1.104"]
    # 可以在192.168.1.104的8080端口运行一个web服务,然后ci中添加以下script,运行ci看看日志
    # curl http://other-host:8080/
    
    # 重启runner
    gitlab-runner restart
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    GBase 8a 负载均衡策略及JDBC连接方式
    matlab中字符串转换为数字(str2double函数)
    计算机网络第一章(计算机网络开篇)
    【无标题】
    Windows Server 生成带私钥的证书请求
    Silky微服务框架之模块
    小程序AI智能名片商城系统直连:打造用户与企业无缝对接的新时代!
    有哪些有睡后收入的副业?
    初始Cpp之 五、函数
    每日一道Java面试题:说一说Java中的异常
  • 原文地址:https://blog.csdn.net/Lee_01/article/details/128070442