Создание образа докера в конвейере GitLabCI - PullRequest
0 голосов
/ 07 января 2019

У меня проблема с GitLabCI, я использую один на gitlab.com.

У меня есть это в моем .gitlab-ci.yml

dockerization:
  image: docker:latest
  stage: dockerization
  variables:
      DOCKER_IMAGE_TAG: "eu.gcr.io/sample-project/sample-app"
  script:
  - docker version
  - echo "$SERVICE_ACCOUNT_KEY" > key.json
  - docker login -u _json_key --password-stdin https://eu.gcr.io < key.json
  - docker push ${DOCKER_IMAGE_TAG}
  only:
    - master

Я получаю сообщение об ошибке в конвейере:

$ docker version
Client: Docker Engine - Community
Version:           18.09.0
API version:       1.39
Go version:        go1.10.4
Git commit:        4d60db4
Built:             Wed Nov  7 00:46:51 2018
OS/Arch:           linux/amd64
Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
ERROR: Job failed: exit code 1

Я пытался добавить DOCKER_HOST: "tcp://127.0.0.1:2375" к работе или / и DOCKER_HOST: "tcp://localhost:2375", DOCKER_HOST: "tcp://docker:2375" но без эффекта.

Есть ли решение для этой проблемы? Что-то не так с моей декларацией конвейера?

Приветствия

1 Ответ

0 голосов
/ 08 января 2019

DOCKER_HOST: "tcp://docker:2375" - правильное решение, но вам нужно добавить

 services:
   - docker:dind

Это фактически запустит демон на docker имени хоста. Это задокументировано на Построении образов Docker с помощью GitLab CI / CD (только пункт № 3 относится к вам)

Но другие темы на этой странице должны быть вам интересны, например, Как ускорить сборку docker-in-docker с кэшированием слоя Docker

Подробнее об услугах в gitlab CI можно найти в GitLab CI Services . Короче говоря, это все равно, что использовать docker-compose, чтобы иметь «компаньонные» контейнеры для вашего основного.

...