我有一个要在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"]
当我尝试运行图像时,出现以下错误。这是错误的屏幕截图。
节点和npm版本在我的机器上以及用于构建映像的基本映像上都相同。 当我在机器上本地运行相同的命令时,它可以工作 这是我在计算机上运行的确切命令,它可以正常工作。
npm install --only =生产
npm运行构建
npm运行服务
我在这里做错什么了吗?任何帮助表示赞赏。
答案 0 :(得分:1)
您正在使用ES6导入
从包中导入x
为此,您应该安装Babel软件包,否则它将不知道如何导入该文件