在本地Gitlab Runner容器内调试

时间:2018-06-08 08:36:35

标签: ruby-on-rails docker rspec gitlab gitlab-ci-runner

我尝试通过Gitlab CI Runner在本地执行一些Rails测试,如下所示:

gitlab-runner exec docker rspec

测试使用无头Chrome将图像渲染到容器中的某个目录中。我需要检查此图像以将其与预期结果进行比较。

putsbyebug等本地调试策略不起作用。我有什么选择?

1 个答案:

答案 0 :(得分:1)

继续发表评论:您可以将一个带有卷映射的跑步者注册到主机驱动器,如:

<强> config.toml

concurrent = 6
check_interval = 0

[[runners]]
  name = "runner name"
  url = "******"
  token = "******"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:17.06.0-ce"
    privileged = false
    disable_cache = false
    volumes = ["/srv/gitlab-runner/images:/usr/src/app/image-dir", "/cache"]
    shm_size = 0
  [runners.cache]

请注意上面的volumes关键字。

如果您需要在指定此卷的情况下运行dockerized gitlab-runner

  1. 为跑步者设置单独的网络:

    $ docker network create gitlab-runner-net
    
  2. 运行主GitLab-runner docker容器:

    $ sudo docker run -d \
    --name gitlab-runner \
    --privileged \
    --restart always \
    --network gitlab-runner-net \
    -v /srv/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /srv/gitlab-runner/images:/usr/src/app/image-dir
    -e DOCKER_HOST=unix:///var/run/docker.sock \
    gitlab/gitlab-runner:alpine
    
  3. 使用GitLab注册跑步者:

    $ docker run -it --rm \
    -v /srv/gitlab-runner/config.toml:/etc/gitlab-runner/config.toml \
    gitlab/gitlab-runner:alpine \
      register \
      --executor docker \
      --docker-image docker:17.06.0-ce \
      --docker-volumes /var/run/docker.sock:/var/run/docker.sock
      --docker-volumes /srv/gitlab-runner/images:/usr/src/app/image-dir
    
  4. 使用上面的卷映射修改跑步者的config.toml

    注意

    以上配置不是唯一的,它只是一个参考点,用于显示如何映射卷,以及一般如何设置正在运行的dind runner,因为gitlab最近在设置私有跑步者方面存在一些问题。 / p>