首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerfile在docker容器中运行nodejs static-content

Dockerfile在docker容器中运行nodejs static-content
EN

Stack Overflow用户
提问于 2018-11-07 03:35:33
回答 2查看 2.1K关注 0票数 3

需要在K8s集群上停靠和运行节点JS静态内容应用程序的建议。

我有一个静态的网页内容,我在终端中运行"npm run build“来生成构建,并将我的IIS定向到/ /build/Index.html。

现在,我开始创建Docker文件,如何将我的nodeJS镜像指向invoke /build/Index.html文件

代码语言:javascript
复制
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上运行此应用程序?

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-07 03:42:28

您可以具体指定节点的版本:

代码语言:javascript
复制
FROM node:8.9.3
票数 1
EN

Stack Overflow用户

发布于 2018-11-07 06:52:12

假设:

  1. package.json位于Code目录下。
  2. npm run build将在容器外部运行,并且将在Code目录中创建一个build目录。
  3. 我们将复制container.
  4. We的/app目录下的整个Code/build目录,将package.json复制到/app文件夹,并通过package.json文件中提供的脚本运行网站。

解决方案:

我建议在package.json中添加一个名为startscript,并从Dockerfile的CMD命令调用该脚本。脚本将如下所示:

代码语言:javascript
复制
  "scripts": {
    "start": "node ./index.html",
  },

Dockerfile看起来会像这样:

代码语言:javascript
复制
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"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53178820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档