【问题标题】:Dockerfile to run nodejs static-content in docker containerDockerfile 在 docker 容器中运行 nodejs 静态内容
【发布时间】:2018-11-07 06:52:12
【问题描述】:

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

我有一个静态 web 内容,我在终端中运行“npm run build”,生成 /build 并将我的 IIS 网络服务器定向到 /build/Index.html。

现在,我开始创建一个 Docker 文件,如何将我的 nodeJS 映像指向调用 /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 ?

请问有什么意见吗?

【问题讨论】:

    标签: node.js docker npm kubernetes


    【解决方案1】:

    可以具体指定node的版本:

    FROM node:8.9.3
    

    【讨论】:

      【解决方案2】:

      假设:

      1. package.json 位于 Code 目录下。
      2. npm run build 将在容器外运行,build 目录将在 Code 目录中创建。
      3. 我们将整个Code/build目录复制到容器的/app目录下。
      4. 我们会将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"]
      

      【讨论】:

      • @Mishra- 谢谢。我创建了相同的,它创建了一个图像,但是在 Docker 运行时,容器不会启动。由于“npm run build”将我所有的二进制文件生成到 /build 文件夹,并且 npm 引擎应该选择 index.html(package.json 指向 index.html),所以我在 install dependencies 之后添加了“npm run build”。我遇到了一些错误
          [13:23:24] 管道工发现未处理的错误:错误:错误:找不到带有单数 glob 的文件:/build/content/styles/bootstrap/bootstrap_modal.css [13:23: 24] 管道工发现未处理的错误。我该如何解决?
      猜你喜欢
      • 2022-10-04
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多