需要在K8s集群上停靠和运行节点JS静态内容应用程序的建议。
我有一个静态的网页内容,我在终端中运行"npm run build“来生成构建,并将我的IIS定向到/ /build/Index.html。
现在,我开始创建Docker文件,如何将我的nodeJS镜像指向invoke /build/Index.html文件
FROM node:carbon
WORKDIR /app
COPY /Core/* ./app
npm run build
EXPOSE 8080
CMD [ "node", ".app/build/index.html" ]请告诉我如何才能仅在节点v8.9.3和npm 5.6.0上运行此应用程序?
有什么建议吗?
发布于 2018-11-07 03:42:28
您可以具体指定节点的版本:
FROM node:8.9.3发布于 2018-11-07 06:52:12
假设:
package.json位于Code目录下。npm run build将在容器外部运行,并且将在Code目录中创建一个build目录。/app目录下的整个Code/build目录,将package.json复制到/app文件夹,并通过package.json文件中提供的脚本运行网站。解决方案:
我建议在package.json中添加一个名为start的script,并从Dockerfile的CMD命令调用该脚本。脚本将如下所示:
"scripts": {
"start": "node ./index.html",
},Dockerfile看起来会像这样:
FROM node:8.9.3
# Make app directory in the container.
RUN MKDIR /app
# Copy whole code to app directory.
COPY Code/build/ /app
# Copy package.json app directory.
COPY package.json /app
# make app directory as the working directory.
WORKDIR /app
# Install dependencies.
RUN npm install -only=production
# Expose the port
EXPOSE 8080
# Start the process
CMD ["npm", "start"]https://stackoverflow.com/questions/53178820
复制相似问题