gitlab-ci docker模式运行 runner

2020-05-08  本文已影响0人  回调的幸福时光

gitlab 官方文档:Install as a Docker service

1.安装docker
首先要在服务器上安装 docker。

curl -sSL https://get.docker.com/ | sh

docker 官方文档

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
  1. 挂在数据卷到容器中

-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
  1. 注册 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

  1. 查看当前运行的容器
docker ps
  1. 进入容器
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
上一篇下一篇

猜你喜欢

热点阅读