Gitlab docker проблема бегуна с путем. gitlab-ci.yml - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь запустить конвейер в Gitlab, используя файл gitlab-ci.yml и программу запуска, которая может запускать docker изображения, но я получил ошибку, потому что программа запуска не может найти правильный путь к Dockerfile

это мой файл yml

    image: docker:latest
services:
- docker:dind

stages:
- build
- test
- release

variables:
  TEST_IMAGE: 193.206.43.98:5555/apfeed/apserver:$CI_COMMIT_REF_NAME
  RELEASE_IMAGE: 193.206.43.98:5555/ap:latest

before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"

build:
  stage: build
  script:
    - docker build --pull -t $TEST_IMAGE .
    - docker push $TEST_IMAGE

test:
  stage: test
  services:
    - mongo:bionic
  script:
    - docker pull $TEST_IMAGE
    - docker run $TEST_IMAGE npm test

release:
  stage: release
  script:
    - docker pull $TEST_IMAGE
    - docker tag $TEST_IMAGE $RELEASE_IMAGE
    - docker push $RELEASE_IMAGE
  only:

И это ошибка, которую я получаю

 $ docker build --pull -t $TEST_IMAGE .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/gitlab-runner/builds/WsYiLtmC/0/al/apfeed/Dockerfile: no such file or directory
ERROR: Job failed: exit status 1

Я пробовал несколько разных способов записи пути в строке TEST IMAGE, но ни один похоже на работу

1 Ответ

1 голос
/ 12 февраля 2020

У вас должен быть Dockerfile в проекте root каталог

ИЛИ

Вы можете передать относительный путь к вашему Dockerfile, если он существует в подкаталоге в репозитории проекта.

например, docker build --pull -t $TEST_IMAGE -f ./some-dir/Dockerfile .

some-dir == каталог внутри вашего репозитория проекта, в котором находится Dockerfile.

Репо проекта сначала клонируется в CI_PROJECT_DIR перед каждое задание выполняется, и CI_PROJECT_DIR - это каталог, в котором будет существовать .gitlab-ci.yml, и сценарии задания также запускаются из этого каталога.

https://docs.gitlab.com/ee/ci/variables/README.html

...