Конвейер Gitlab не может создать образ из Dockerfile, пакет. json не найден - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь скопировать сборку образа из файла Dockerfile в конвейере Gitlab. Когда я использую docker локально в моей машине, у меня нет проблем. Но когда я пытаюсь повторить процесс в конвейере, скрипт завершается с ошибкой:

 Step 6/12 : RUN npm run-script build
 ---> Running in 4717c4b9d61a
 npm ERR! code ENOENT
 npm ERR! syscall open
 npm ERR! path /app/package.json
 npm ERR! errno -2
 npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
 npm ERR! enoent This is related to npm not being able to find a file.

Вот мой .gitlab-ci.yml

image: docker:18.09.7
services:
- docker:18.09.7-dind

stages:
- build
- test

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE -f ./hackapp/Dockerfile
before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
build:
  stage: build
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG

test:
  stage: test
  services:
    - mongo:bionic
  script:
    - docker pull $IMAGE_TAG
    - docker run $IAMGE_TAG

И мой Dockerfile

# Stage I

FROM node:stretch-slim AS react-build

WORKDIR /app

COPY . /app/

RUN npm install
RUN npm install react-scripts@3.0.1 -g
RUN npm run-script build

# Stage II
#Setup Nginx
FROM nginx:1.16.0-alpine

COPY --from=react-build /app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d

#Fire up Nginx
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

Я пытался установить добавление npm install npm@latest -g в первом RUN, но похоже, что он не может найти путь к package.json файлу

1 Ответ

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

Может быть пакетом. json на самом деле не копируется в каталог / app /. Вы можете проверить, используя ls -l, чтобы быть уверенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...