美文网首页
gitlab-ci docker模式运行 runner

gitlab-ci docker模式运行 runner

作者: 回调的幸福时光 | 来源:发表于2020-05-08 10:50 被阅读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
    

    相关文章

      网友评论

          本文标题:gitlab-ci docker模式运行 runner

          本文链接:https://www.haomeiwen.com/subject/bacgghtx.html