无法通过Docker容器运行node.js应用程序
我有一个node.js应用程序,我正试图在docker中运行。下面是package.json文件片段无法通过Docker容器运行node.js应用程序,node.js,docker,npm,dockerfile,Node.js,Docker,Npm,Dockerfile,我有一个node.js应用程序,我正试图在docker中运行。下面是package.json文件片段 "main": "lib/server.js", "scripts": { "clean": "cross-env rm -rf dist", "build": "cross-env babel lib -d dist", &qu
"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安装--仅限=生产
npm运行构建
跑发球
我做错什么了吗?非常感谢您的帮助。您正在使用ES6导入 从包中导入x
为此,您应该安装Babel软件包,否则它将不知道如何导入该文件检查您的
package.json
依赖项列表,您可能没有在其中添加express
。发布完整的package.json
文件。您确定Babel可用并且传输成功吗?“Babel cli”:“^6.26.0”,“Babel polyfill”:“^6.26.0”,“express”:“^4.16.4”
是的,我有Babel和express。如何检查babel是否成功传输?找到了。我忘了将Dockerfile中的.babelrc复制到工作区。应该是这个COPY.babelrc./
。babel传输需要babelrc。“babel cli”:“^6.26.0”,“babel polyfill”:“^6.26.0”,“express”:“^4.16.4”
是的,我安装了babel。