我有以下 gitlab-ci.yml:
stages:
- build
- dev
- staging
- deploy
variables:
DOCKER_IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
webservice:
stage: build
tags:
- local-mac-runner
image: docker:stable
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
before_script:
- docker info
script:
- echo "test"
- echo $CI_REGISTRY_IMAGE
- echo $CI_COMMIT_SHORT_SHA
它失败并出现以下错误:
$ docker info 52Client: 53 Debug Mode: false 54Server: 55ERROR: error during connect: Get http://docker:2375/v1.40/info: dial tcp: lookup docker on 192.168.65.1:53: no such host 56errors pretty打印信息 57 清理基于文件的变量 00:01 58错误:作业失败:退出代码 1
更进一步......在失败之前,我还看到了这些消息:
152020-12-24T20:33:36.355214400Z Generating RSA private key, 4096 bit long modulus (2 primes)
162020-12-24T20:33:36.372258200Z .++++
172020-12-24T20:33:36.448415100Z ...............++++
182020-12-24T20:33:36.448738500Z e is 65537 (0x010001)
192020-12-24T20:33:36.463872100Z Generating RSA private key, 4096 bit long modulus (2 primes)
202020-12-24T20:33:37.287683200Z ..................................................................................................................................................................................................................++++
212020-12-24T20:33:37.872383900Z ........................................................................................................................................................++++
222020-12-24T20:33:37.872655500Z e is 65537 (0x010001)
232020-12-24T20:33:37.897641600Z Signature ok
242020-12-24T20:33:37.897669100Z subject=CN = docker:dind server
252020-12-24T20:33:37.897865000Z Getting CA Private Key
262020-12-24T20:33:37.909653400Z /certs/server/cert.pem: OK
272020-12-24T20:33:37.912314900Z Generating RSA private key, 4096 bit long modulus (2 primes)
282020-12-24T20:33:38.242873100Z .....................................................................................++++
292020-12-24T20:33:38.373200000Z ...............................++++
302020-12-24T20:33:38.373544000Z e is 65537 (0x010001)
312020-12-24T20:33:38.394299500Z Signature ok
322020-12-24T20:33:38.394364300Z subject=CN = docker:dind client
332020-12-24T20:33:38.394529500Z Getting CA Private Key
342020-12-24T20:33:38.405602600Z /certs/client/cert.pem: OK
352020-12-24T20:33:38.408725400Z mount: permission denied (are you root?)
362020-12-24T20:33:38.408928200Z Could not mount /sys/kernel/security.
372020-12-24T20:33:38.408952600Z AppArmor detection and --privileged mode might break.
382020-12-24T20:33:38.410009700Z mount: permission denied (are you root?)
我试图在托管 GitLab Runner 的机器上手动执行此操作......我认为缺少的是我需要以某种方式指定“--privledged”标志。这是我手动运行的,它可以工作:
docker run -d --privileged -p 12375:2375 -e DOCKER_TLS_CERTDIR="" docker:dind