Невозможно запустить приложение node.js через контейнер Docker - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть приложение node.js, которое я пытаюсь запустить в Docker.Вот фрагмент файла package.json.

"main": "lib/server.js",
  "scripts": {
    "clean": "cross-env rm -rf dist",
    "build": "cross-env babel lib -d dist",
    "start": "npm run clean && npm run build && npm run serve",
    "serve": "node dist/index.js",
    "dev": "cross-env NODE_ENV=development nodemon lib/server.js --exec babel-node",
    "test": "echo \"Error: no test specified\" && exit 1",
    "lint": "eslint --ext .js lib/ scripts/ --ignore-pattern node_modules/"
  }

А вот Dockerfile для создания образа

#---- Base Node------
FROM node:10.15.1-alpine

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY package*.json ./

COPY lib ./lib

RUN npm install --only=production && npm run build

EXPOSE 4201

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

При попытке запустить образ я получаю следующую ошибку.Вот скриншот ошибки.

enter image description here

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

npm install --only = production

npm run build

npm run serve

Я что-то здесь не так делаю?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 февраля 2019

Вы используете ES6 import

import x из пакета

Для этого у вас должен быть установлен пакет Babel, иначе он не будет знать, какимпортировать этот файл

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