docker 安装 gitlab runner(gitlab支持http、https + 域名访问)
安装准备:
Vmware上搭建的Centos7系统(以下叫vm),vm中已安装有docker环境,和gitlab容器(以下叫gitlab)作为个人代码仓库
而且gitlab可以使用http或https + 域名访问,这里忽略安装和配置过程
(有空研究下如何让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文件,所以:
- 先通过docker cp命令 将crt文件从 gitlab的docker容器中拷贝到vm上
- 再通过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,用来存放证书:
bash进入runner
# 3ff4d521f676 是gitlab runner容器id
docker exec -it 3ff4d521f676 bash
可以看到对应runner的 /etc/gitlab-runner/certs 目录:
registry.allen.com 需要在runner的/etc/hosts配置vm的ip
执行命令,指定证书(因为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
还没有评论,来说两句吧...