Проблема с выполнением тестовой команды внутри контейнера Docker в Gitlab Runner - PullRequest
1 голос
/ 06 мая 2019

Я только начинаю с docker и непрерывной интеграции с Gitlab. Я добавил следующий gitlab-ci.yml файл в корень моего хранилища:

# Official docker image
image: docker:latest

services:
  - docker:dind

build-dev:
  stage: build
  script:
    - docker build -t obikerui/project -f app/Dockerfile.dev ./app

test:
  stage: test
  script:
    - docker run obikerui/project npm run test -- --coverage

Этап build-dev выполняется и проходит, но этап test завершается неудачно со следующим сообщением об ошибке:

$ docker run obikerui/project npm run test -- --coverage
Unable to find image 'obikerui/project:latest' locally
docker: Error response from daemon: pull access denied for obikerui/project, repository does not exist or may require 'docker login'.
See 'docker run --help'.
ERROR: Job failed: exit code 125

Может кто-нибудь объяснить, что идет не так и предложить исправить? Хранилище является частным, поэтому мне нужно предоставить дополнительную конфигурацию для этого?

1 Ответ

3 голосов
/ 06 мая 2019

Каждое задание выполняется в отдельном контейнере.Вы создаете и правильно помечаете свое изображение, но оно остается в этом контейнере.

Для тестового задания запускается новый контейнер, и у него нет образа, созданного предыдущим заданием.

Выследует поместить ваше изображение в реестр (после того, как вы пометите его соответствующим образом), а затем тестовое задание должно использовать изображение из хранилища.

Вы можете использовать общедоступный реестр, подобный тому, который предлагает Docker, или вы можете запуститьлокальный контейнер на основе реестра образов: 2 предоставлен docker.В этом случае вы должны убедиться, что доменное имя, указывающее на реестр, доступно в вашей сети (это может быть nginx с обратным прокси)

...