我正在测试gitlab,并试图从Dockerfile在注册表上生成一个映像。
我只需要测试相同的代码:
#gitlab-ci
image: docker:latest
tages:
- build
- deploy
build_application:
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . -f Dockerfile
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-test产出:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?docker正在运行,图像正在被拖动,但我无法执行docker命令。
在本地环境中,如果运行:
docker run -it docker:latest我呆在集装箱里运行码头信息我也有同样的问题。我不得不通过这样运行容器来修复它:
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker:latest但我不知道如何在gitlab-ci上解决这个问题。我把我的跑步者配置成:
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:latest也许有人能让我走向正确的方向。谢谢
发布于 2018-01-11 19:24:47
通过默认设置,不可能运行停靠码头(DIND) (作为一种安全措施)。
Gitlab文档中的这一节是您的解决方案。你必须使用码头工人。
将运行程序配置为使用DIND之后,您的.gitlab-ci.yml将如下所示:
#gitlab-ci
image: docker:latest
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
stages:
- build
- deploy
build_application:
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . -f Dockerfile
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA-testhttps://stackoverflow.com/questions/48213882
复制相似问题