Docker Container NPM Зависимости не найдены - PullRequest
0 голосов
/ 06 июля 2019

Я установил двухэтапный процесс сборки для своих док-контейнеров. Первый этап устанавливает git и запускает npm install. 2-й этап копирует node_modules из этапа 1, а затем копирует исходный код с моего хоста. Затем он запускает сервер разработки. Кажется, что все работает правильно, за исключением того, что когда dev-сервер пытается запуститься, он выдает эту ошибку:

"frontend_1 | Эта зависимость не найдена:
frontend_1 |
frontend_1 | * vue-free-transform в ./node_modules/cache-loader/dist/cjs.js??ref--12 ! -0 ./ node_modules / Babel-погрузчик / LIB ./ node_modules / vuetify-погрузчик / Библиотека / loader.js ./ node_modules / кэш-погрузчик / DIST / cjs.js ?? исх -! 0-0 !. /node_modules/vue-loader/lib??vue-loader-options!./src/components/editor/Line.vue?vue&type=script&lang=js&"

Я выполнил запрос в контейнер и проверил папку node_modules и убедился, что она находится в правильном месте, а vue-free-transform находится там и, кажется, не поврежден. Проект является проектом vue cli 3, и все настройки webpack / bower остались по умолчанию vue cli.

Я попытался удалить все используемые тома, очистить кэш npm и вручную выполнить в контейнер и запустить установку npm.

Dockerfile:

FROM node:alpine as builder

WORKDIR /usr/src/app
COPY package.json .
RUN apk add --no-cache git
RUN npm install

FROM node:alpine

WORKDIR /usr/src/app
COPY --from=builder /usr/src/app/node_modules ./node_modules
COPY . .

CMD ["npm", "run", "serve"]

докер-Compose:

version: '3'

services:
  frontend:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "8080:8080"
#    volumes:
#      - /usr/src/app/node_modules
#      - .:/usr/src/app
    command: ["npm", "run", "serve"]

Я ожидаю, что dev-сервер запустится без проблем, но вместо этого я получу сообщение об ошибке выше. Если мне не хватает каких-либо важных деталей, пожалуйста, дайте мне знать!

1 Ответ

0 голосов
/ 06 июля 2019

Ну, я понял это ... Как обычно, это была просто глупая ошибка.Репо тянуло просто отлично, но модуль так и не был собран, поэтому в нем не было папки dist.

Необходимо либо зафиксировать папку dist с модулем, либо собрать ее после установки с помощью npm.

...