无法通过Docker容器运行node.js应用

时间:2019-02-24 05:09:28

标签: node.js docker npm dockerfile

我有一个要在docker中运行的node.js应用程序。这是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 =生产

     

npm运行构建

     

npm运行服务

我在这里做错什么了吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您正在使用ES6导入

  

从包中导入x

为此,您应该安装Babel软件包,否则它将不知道如何导入该文件