有很多Angular 2+模板(例如http://coreui.io/)在Node中运行良好,只需:
npm install
npm start
但是,让它们在Docker容器中运行是一项挑战。我尝试了标准方法来创建dockerfile
,但这不起作用
是否有一种简单的方法可以将任何在Node上运行的应用程序停靠?
我错过了什么?
这就是我的dockerfile的样子(由yo docker
生成):
FROM node:latest
WORKDIR /src
EXPOSE 4200
ENTRYPOINT ["npm", "start"]
COPY . /src
RUN npm install
答案 0 :(得分:1)
我建议的第一件事,不要使用node:latest
。你通常运行什么版本的节点?指定该版本。
您可能需要创建/src
文件夹
您还应将ENTRYPOINT
更改为CMD
FROM node:7.9
RUN mkdir /src
WORKDIR /src
# cache the node modules for faster re-builds
COPY ./package.json /src
RUN npm install
COPY . /src
EXPOSE 4200
CMD ["npm", "start"]
这应该涵盖最基本的节点应用程序。
但事情确实变得很复杂。如果你需要更多关于构建一个正确的dockerfile的信息,我有一个关于nodejs的完整课程:https://sub.watchmecode.net/guides/build-node-apps-in-docker/