以下是我的项目结构。
root
├── public
│ ├── favicon.ico
│ └── index.html
├── server
│ └── index.js
├── src
└── index.js
这是一个带有Node.js Express服务器的React + Redux Web应用程序,用于路由。 Webpack将所有内容构建到/ dist文件夹中。
我创建了以下Dockerfile,尝试构建并运行,但是它不起作用。
FROM node:8.11.3
ENV NODE_ENV=production
RUN mkdir -p /app
WORKDIR /app
COPY package.json /app/
RUN npm install
CMD npm run build && npm start
EXPOSE 8080
我将使用哪种正确的生产级Dockerfile配置?
更新:这是我得到的错误。
# docker run -i -t -p 8080:8080 45e219dfed94
> myapp@1.0.0 build /app
> webpack --mode production
sh: 1: webpack: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! myapp@1.0.0 build: `webpack --mode production`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the myapp@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-15T12_15_41_041Z-debug.log
答案 0 :(得分:0)
埃里克
“未找到Webpack”错误表示未在容器内部安装Webpack。将以下内容添加到项目的package.json中的“ dependencies”中:
"webpack": "^4.0.1",
"webpack-cli": "^2.0.9"
看起来像这样
"dependencies": {
...,
"webpack": "^4.0.1",
"webpack-cli": "^2.0.9"
},