我尝试通过Gitlab CI Runner在本地执行一些Rails测试,如下所示:
gitlab-runner exec docker rspec
测试使用无头Chrome将图像渲染到容器中的某个目录中。我需要检查此图像以将其与预期结果进行比较。
puts
和byebug
等本地调试策略不起作用。我有什么选择?
答案 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 ,:
为跑步者设置单独的网络:
$ docker network create gitlab-runner-net
运行主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
使用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
使用上面的卷映射修改跑步者的config.toml
。
注意强>
以上配置不是唯一的,它只是一个参考点,用于显示如何映射卷,以及一般如何设置正在运行的dind runner,因为gitlab最近在设置私有跑步者方面存在一些问题。 / p>