docker 安装 gitlab runner(gitlab支持http、https + 域名访问)

雨点打透心脏的1/2处 2021-12-22 07:29 843阅读 0赞

安装准备:

Vmware上搭建的Centos7系统(以下叫vm),vm中已安装有docker环境,和gitlab容器(以下叫gitlab)作为个人代码仓库

而且gitlab可以使用http或https + 域名访问,这里忽略安装和配置过程

20190629130357268.png

20190629133254414.png

(有空研究下如何让https访问变成安全访问)

开始安装:

docker 安装 gitlab runner

  1. docker run -d --name myGitlabRunner --restart always \
  2. -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  3. -v /var/run/docker.sock:/var/run/docker.sock \
  4. gitlab/gitlab-runner:latest

通过docker ps可以看到已经安装了 gitlab runner容器(以下叫runner)

20190629130514976.png

安装完后,还需要runner注册,才会实现提交代码后自动部署:

  • 根据官网的指示,我本想在vm中直接运行runner注册的

    docker run —rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
    —non-interactive \
    —executor “docker” \
    —docker-image alpine:latest \
    —url “https://registry.allen.com:10443/“ \
    —registration-token “irZcvm_BzJzQzJPrH1Tw” \
    —description “allen-devolop-runner” \
    —tag-list “allen-devolop-tag” \
    —run-untagged=”true” \
    —locked=”false” \
    —tls-ca-file=/srv/gitlab-runner/config/certs/registry.allen.com.crt

但发现认不到域名,所以在vm中通过直接运行runner的命令是不通过的(如果有人找到办法欢迎指教)

20190629132544364.png

  1. 所以我想到不如直接进入runner中执行来得简单方便直观,接着往下。
  • 需要gitlab公钥证书crt文件,所以:
  1. 先通过docker cp命令 将crt文件从 gitlab的docker容器中拷贝到vm上
  2. 再通过docker cp命令 将crt文件从vm上拷贝到gitlab runner的docker容器

我并没有这样做,而是:

  1. 利用vmrunner在上面已建立的挂载关系
  2. -v /srv/gitlab-runner/config:/etc/gitlab-runner

我只要在虚机把crt文件放到 /srv/gitlab-runner/config 目录下,就可以在runner里使用到它

vm的/srv/gitlab-runner/config目录,我新建了一层目录certs,用来存放证书:

20190629131238827.png
bash进入runner

  1. # 3ff4d521f676 是gitlab runner容器id
  2. docker exec -it 3ff4d521f676 bash

可以看到对应runner的 /etc/gitlab-runner/certs 目录:

20190629131447335.png

registry.allen.com 需要在runner的/etc/hosts配置vm的ip

20190629131726481.png

执行命令,指定证书(因为gitlab是https访问的)

  1. gitlab-runner register \
  2. --non-interactive \
  3. --executor "docker" \
  4. --docker-image alpine:latest \
  5. --url "https://registry.allen.com:10443/" \
  6. --registration-token "irZcvm_BzJzQzJPrH1Tw" \
  7. --description "allen-devolop-runner" \
  8. --tag-list "allen-devolop-tag" \
  9. --run-untagged="true" \
  10. --locked="false" \
  11. --tls-ca-file=/etc/gitlab-runner/certs/registry.allen.com.crt

最后成功

20190629132815705.png

参考资料:

Register Runner

Run GitLab Runner in a container

GitLab Runner FAQ

发表评论

表情:
评论列表 (有 0 条评论,843人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker 安装 Gitlab

    Gitlab简介 [GitLab][]是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码。传统方式是手动下载