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

安装准备:

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

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

docker 安装 gitlab runner(gitlab支持http、https + 域名访问)_第1张图片

docker 安装 gitlab runner(gitlab支持http、https + 域名访问)_第2张图片

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

 

开始安装:

docker 安装 gitlab runner

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

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

安装完后,还需要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的命令是不通过的(如果有人找到办法欢迎指教)

    所以我想到不如直接进入runner中执行来得简单方便直观,接着往下

  • 需要gitlab公钥证书crt文件,所以:
  1. 先通过docker cp命令 将crt文件从 gitlab的docker容器中拷贝到vm上
  2. 再通过docker cp命令 将crt文件从vm上拷贝到gitlab runner的docker容器

我并没有这样做,而是:

     利用vm与runner在上面已建立的挂载关系

-v /srv/gitlab-runner/config:/etc/gitlab-runner

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

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

docker 安装 gitlab runner(gitlab支持http、https + 域名访问)_第3张图片
bash进入runner

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

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

docker 安装 gitlab runner(gitlab支持http、https + 域名访问)_第4张图片

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

docker 安装 gitlab runner(gitlab支持http、https + 域名访问)_第5张图片

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

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=/etc/gitlab-runner/certs/registry.allen.com.crt

最后成功

参考资料:

Register Runner

Run GitLab Runner in a container

GitLab Runner FAQ

你可能感兴趣的:(gitlab,docker,CI/CD)