gitlab 官方文档:Install as a Docker service
1.安装docker
首先要在服务器上安装 docker。
curl -sSL https://get.docker.com/ | sh
2.启动 docker
sudo service docker start
3.docker 需要用户具有 sudo 权限,为了避免每次命令都输入 sodo,可以把用户加入 docker 组。
sudo usermod -aG docker username
改变用户组
newgrp docker
重启 docker 服务
sudo service docker restart
此时可以不再输入 sudo 执行 docker 命令。
否则非 root 用户操作时会报错:
Server:
ERROR: Got permission denied while trying to connect to the Docker
daemon socket at unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info: dial unix /var/run/docker.sock:
connect: permission denied
- 挂在数据卷到容器中
-v
表示挂载数据卷
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:alpine
- 注册 runner
docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:alpine register
之后是回答一系列问题,最后 Runner executor
记得选择 docker。
default image
输入 alpine:latest
。
- 查看当前运行的容器
docker ps
- 进入容器
docker exec -it <docker-id> /bin/bash
退出容器
exit
8.重启runner
docker restart gitlab-runner
注意事项
1.runner 配置文件 config.toml
里面的 build_dir
字段可以重新指明 build 的目录,默认对应于宿主机的目录是:/var/lib/docker/volues/<volume-id>/_data/<project-name>
但这个目录隐藏的太深,如果你希望runner 执行完后还能找到构建目录,可以通过下面的挂载数据方式指定成期望的目录。
[[runners]]
name = "docker mode for runner"
url = "https://git.myscrm.cn/"
token = "******"
executor = "docker"
builds_dir = "/home/workspace"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache","/home/workspace:/home/workspace:rw"]
shm_size = 0