gitlab-ci docker模式運行 runner

gitlab 官方文檔:Install as a Docker service

1.安裝docker
首先要在服務(wù)器上安裝 docker。

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

docker 官方文檔

2.啟動 docker

sudo service docker start

3.docker 需要用戶具有 sudo 權(quán)限,為了避免每次命令都輸入 sodo,可以把用戶加入 docker 組。

sudo usermod -aG docker username

改變用戶組

newgrp docker

重啟 docker 服務(wù)

sudo service docker restart

此時可以不再輸入 sudo 執(zhí)行 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. 掛在數(shù)據(jù)卷到容器中

-v 表示掛載數(shù)據(jù)卷

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. 查看當(dāng)前運行的容器
docker ps
  1. 進入容器
docker exec -it <docker-id> /bin/bash

退出容器

exit

8.重啟runner

docker restart gitlab-runner

注意事項

1.runner 配置文件 config.toml 里面的 build_dir 字段可以重新指明 build 的目錄,默認對應(yīng)于宿主機的目錄是:/var/lib/docker/volues/<volume-id>/_data/<project-name>

但這個目錄隱藏的太深,如果你希望runner 執(zhí)行完后還能找到構(gòu)建目錄,可以通過下面的掛載數(shù)據(jù)方式指定成期望的目錄。

[[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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容