0
点赞
收藏
分享

微信扫一扫

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

_karen 2022-09-21 阅读 124


安装准备:

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

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

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

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

(有空研究下如何让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)

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

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

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

所以我想到不如直接进入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 + 域名访问)_bash_05


bash进入runner

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

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

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

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

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

执行命令,指定证书(因为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

最后成功

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

参考资料:

​​Register Runner​​

​​Run GitLab Runner in a container​​

​​GitLab Runner FAQ​​

举报

相关推荐

0 条评论