docker部署gitlab-runner使用

711 阅读1分钟

通过docker部署gitlab-runner

把gitlab的config文件挂载出来做持久化处理

docker run -d --name gitlab-runner --privileged=true --restart always -v /opt/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock -v /root/.docker/:/root/.docker/ gitlab/gitlab-runner:latest 

通过进入容器中对这个runner注册对应的gitlab的地址和token相关信息

`[root@cloud1 /opt/gitlab-runner/config]# docker exec -it gitlab-runner gitlab-runner register`
Runtime platform                                    arch=amd64 os=linux pid=253 revision=c1edb478 version=14.0.1
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):


这个时候通过查看gitlab上面可以看到我们注册的gitlab-runner已经出现了

image.png

但是这个时候这个runner其实不可用的,由于我们使用的时候涉及到私有仓库的一些镜像的拉取,这个时候他是没有权限的,我们需要通过gitlab-runner配置的volumes参数把它本地login的信息挂载进去

`[root@cloud1 /opt/gitlab-runner/config]# cat config.toml `
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-01"
  url = "xxx"
  token = "xxx"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "ruby:2.6"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock","/root/.docker/:/root/.docker/"]
    shm_size = 0

简单的优化

  1. 修改runner的配置文件,修改runner启动容器的规则,当本地有镜像的时候不会重复拉取,节省了时间
pull_policy = "if-not-present"

修改完以后重启这个gitlab-runner


#重启生效
`[root@cloud1 /opt/gitlab-runner/config]# docker exec -it gitlab-runner gitlab-runner restart `
Runtime platform  arch=amd64 os=linux pid=112 revision=c1edb478 version=14.0.1

结束!这个时候通过docker部署的gitlabrunner就可以正常使用了