一. 准备环境
-
复制
daemon.json
到/etc/docker/
,并执行systemctl daemon-reload
,systemctl restart docker
【此步省略,已经配置了私服】- 其中定义了baseservice.qfjava.cn:60001是docker私服地址,方便下载gitlab-runner镜像
-
创建工作目录
/opt/docker_gitlab-runner
- 将提供好的
docker-compose.yml
文件以及environment
目录全部复制到上述目录中
- 将提供好的
-
在宿主机启动docker程序后先执行
sudo chown root:root /var/run/docker.sock
- 更改宿主机中此文件的 属主和属组 为 root
- 如果如上设置后,重启了docker,则需要重新执行如上设置
-
在
/opt/docker_gitlab-runner
目录中执行docker-compose up -d --build
启动容器- 基于gitlab-runner构建镜像
- 在镜像中安装 docker,docker-compose,jdk,maven
- 启动新镜像的容器
-
添加容器权限,保证容器可以使用宿主机的docker
-
给gitlab-runner访问docker的权限 进入容器“gitlab-runner” 将用户"gitlab-runner"加入到“root”用户组中
-
容器名 shell 组名 用户名
docker exec -it gitlab-runner usermod -aG root gitlab-runner
-
-
注册Runner信息到gitlab
docker exec -it gitlab-runner gitlab-runner register
# 输入 GitLab 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.199.109/
# 输入 GitLab Token
Please enter the gitlab-ci token for this runner:
1Lxq_f1NRfCfeNbE5WRh
# 输入 Runner 的说明
Please enter the gitlab-ci description for this runner:
可以为空
# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
Please enter the gitlab-ci tags for this runner (comma separated):
deploy
# 这里选择 true ,可以用于代码上传后直接执行(根据版本,也会没有次选项)
Whether to run untagged builds [true/false]:
true
# 这里选择 false,可以直接回车,默认为 false(根据版本,也会没有次选项)
Whether to lock Runner to current project [true/false]:
false
# 选择 runner 执行器,这里我们选择的是 shell
Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:
shell
docker-compose.yml
version: '3.1'
services:
gitlab-runner:
build: environment
restart: always
container_name: gitlab-runner
privileged: true
volumes:
- ./config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"baseservice.qfjava.cn:60001"
]
}