我使用webpack捆绑前端资产并将它们放在dist
目录中。但是,我还希望有一个快速服务器来提供index.html
html-webpack-plugin
生成,并存储在dist
中。快速服务器需要一些节点模块,主要是表达式,正文解析器,时刻等。
然而node_modules
中没有dist
,所以当无法找到快递时,它处于第一个障碍。我应该为这个小型快速服务器创建一个单独的package.json并将其保存在dist
内,并将其npm install
放在我的Dockerfile的单独行上(看起来有点复杂......)或者是在webpacking之后,有一个更好的方法让这个服务器解决它的依赖关系吗?
Dockerfile
FROM node:8.4.0-alpine
WORKDIR /opt/app
COPY ./node_modules node_modules
COPY ./dist .
EXPOSE 6500
ENTRYPOINT ["node", "server.js"]
第5行是暂时尝试将所有node_modules
移动到应用根目录中是否允许服务器运行。它确实包含了从express和body-parser到react和webpack-dev-server的所有内容。
答案 0 :(得分:0)
您正在将本地系统中的npm模块(最有可能)复制到高山实例,这是一个不同的操作系统,不一定兼容。
您需要运行RUN npm install
。
我的猜测是你需要一个与此类似的dockerfile:
FROM node:8.4.0-alpine
WORKDIR /opt/app
COPY package.json .
RUN npm install
COPY ./dist .
EXPOSE 6500
//This might also be wrong: ENTRYPOINT ["node", "server.js"]
CMD [ "npm", "start" ]
如果我正确理解你,你可能需要在文字之后移动文件:
RUN mv node_modules dist/node_modules
有一个很好的教程可能会对https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
有所帮助