Cra*_*tis 16 gitlab docker gitlab-ci docker-in-docker
我有一个我想要的GitLab管道:
我遇到的主要问题是这是有效的:
services:
- docker:dind
docker_test:
stage: docker_test
image: docker:latest
script:
- docker version
Run Code Online (Sandbox Code Playgroud)
输出按预期打印:
> gitlab-ci-multi-runner exec docker --docker-privileged docker_test
...
$ docker version
Client:
Version: 17.06.0-ce
...
Server:
Version: 17.06.0-ce
...
Build succeeded
Run Code Online (Sandbox Code Playgroud)
虽然这没有(安装步骤docker-ce省略):
services:
- docker:dind
docker_test:
stage: docker_test
image: ubuntu:latest << note change
script:
- docker version
Run Code Online (Sandbox Code Playgroud)
它失败了:
$ docker version
Client:
Version: 17.06.0-ce
API version: 1.30
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:23:31 2017
OS/Arch: linux/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
ERROR: Build failed: exit code 1
FATAL: exit code 1
Run Code Online (Sandbox Code Playgroud)
如何使我的ubuntu图像(或任何图像构建我的项目)连接到链接的Docker-in-Docker服务?这是docker:latest做什么我不是?
我已经阅读了GitLab服务文档,但从主机名的角度来看它才对我有意义.(如果您有mysql服务,可以连接mysql:3306.)
编辑:更新命令echo $DOCKER_HOST,我在docker:latest图像中看到:
$ echo $DOCKER_HOST
tcp://docker:2375
Run Code Online (Sandbox Code Playgroud)
在ubuntu:latest图中我看到:
$ echo $DOCKER_HOST
(nothing - but SO doesn't let me add a blank code line)
Run Code Online (Sandbox Code Playgroud)
Rob*_*ert 19
作为您添加的信息,我希望这确实有效:
services:
- docker:dind
docker_test:
stage: docker_test
image: ubuntu:latest
variables:
DOCKER_HOST: "tcp://docker:2375"
script:
- docker version
Run Code Online (Sandbox Code Playgroud)
或者:
services:
- docker:dind
docker_test:
stage: docker_test
image: ubuntu:latest
script:
- export DOCKER_HOST=tcp://docker:2375
- docker version
Run Code Online (Sandbox Code Playgroud)
似乎Gitlab没有为自定义图像设置DOCKER_HOST变量.
| 归档时间: |
|
| 查看次数: |
5935 次 |
| 最近记录: |