Я установил двухэтапный процесс сборки для своих док-контейнеров. Первый этап устанавливает 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-сервер запустится без проблем, но вместо этого я получу сообщение об ошибке выше. Если мне не хватает каких-либо важных деталей, пожалуйста, дайте мне знать!