如何解决如何设置 gitlab-runner 以在 gitlab-ci 中运行 docker 命令?
我尝试配置 gitlab runner 以便在我的 .gitlab-ci.yml
文件中使用 docker 命令。
我已经运行了 2 个容器来做到这一点:
gitlab/gitlab-ce:latest
gitlab/gitlab-runner:alpine
我已将我注册的跑步者设置为特权模式:
[[runners]]
name = "first runner"
url = "http://my.domain.com:8484/"
token = "mySecretToken"
executor = "docker"
clone_url = "http://my.domain.com:8484/"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "node:lts-alpine"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
我的管道可以很好地构建和运行测试。现在我想用我的节点构建文件构建 nginx docker 容器。
当我刚运行 docker version
命令时,出现错误:
$ docker version
Client: Docker Engine - Community
Version: 20.10.1
API version: 1.41
Go version: go1.13.15
Git commit: 831ebea
Built: Tue Dec 15 04:28:35 2020
OS/Arch: linux/amd64
Context: default
Experimental: true
error during connect: Get http://docker:2375/v1.24/version: dial tcp: lookup docker on 8.8.8.8:53: no such host
ERROR: Job failed: exit code 1
也许是我的 .gitlab-ci.yml
出错了:
services:
- name: docker:dind
stages:
- construction
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
# See https://github.com/docker-library/docker/pull/166
DOCKER_TLS_CERTDIR: ""
deploiement:
stage: construction
image: docker:latest
before_script:
- docker version
script:
- echo "test"
如何配置我的跑步者来执行 docker 命令?我的跑步者设置有问题吗?
感谢您的回答!
解决方法
根据@Dr Claw和@vpalmerini注释,需要在volume中加入docker.sock并移除变量和服务。见this thread。
我的.gitlab-ci.yml
:
variables:
DOCKER_DRIVER: overlay2
before_script:
- df
- cat /etc/resolv.conf
- cat /etc/hosts
deploiement:
image: docker:latest
before_script:
- docker version
script:
- docker info
我的config.toml
:
[[runners]]
name = "Synology premier runner"
url = "http://my.domain.com:8484/"
token = "1UsxGPQmxht6zHPb_y2b"
executor = "docker"
clone_url = "http://my.domain.com:8484/"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "node:lts-alpine"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"]
shm_size = 0
非常感谢您的回答@Dr Claw和@vpalmerini!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。