Сбой задания Gitlab - не удается найти команду докера - PullRequest
0 голосов
/ 04 июля 2019

Когда я пытаюсь запустить задание deploy на моем конвейере gitlab, я получаю следующую ошибку:

$ docker login -u gitlab-ci-token -p "$CI_BUILD_TOKEN" "$CI_REGISTRY"
/bin/bash: line 84: docker: command not found

My gitlab-ci.yml выглядит так

image: docker:latest

services:
  - docker:dind

before_script:
  - docker login -u gitlab-ci-token -p "$CI_BUILD_TOKEN" "$CI_REGISTRY"

stages:
  - lint
  - test
  - build
  - build-image
  - deploy

deploy:
  stage: deploy
  image: registry.gitlab.com/username/someimage:latest
  script: 
    - some deploy command
  only:
    refs:
      - master
      - develop
      - staging

Ответы [ 2 ]

1 голос
/ 04 июля 2019

docker login из вашего before_script выполняется в контейнере на основе указанного вами частного изображения: registry.gitlab.com/username/someimage:latest

В этом образе не установлено docker, поэтому появляется сообщение об ошибке.

В зависимости от вашего случая, вы можете:

  • установить docker в этом образе (где бы вы его не создавали)
  • или прямо в задании GitLab в качестве первых строк apt-get update && apt-get install docker.io если он основан на Ubuntu
  • или вообще использует другое изображение, на котором уже есть докер

Это действительно зависит от того, чего вы хотите достичь в итоге.

0 голосов
/ 04 июля 2019
image: docker:git

services:
  - docker:dind

before_script:
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com

stages:
  - lint
  - test
  - build
  - build-image
  - deploy

deploy:
  stage: deploy
  image: registry.gitlab.com/username/someimage:latest
  script: 
    - apt update
    - ...
  only:
    refs:
      - master
      - develop
      - staging
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...