Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Dockerfile在docker容器中运行nodejs静态内容_Node.js_Docker_Npm_Kubernetes - Fatal编程技术网

Node.js Dockerfile在docker容器中运行nodejs静态内容

Node.js Dockerfile在docker容器中运行nodejs静态内容,node.js,docker,npm,kubernetes,Node.js,Docker,Npm,Kubernetes,需要建议在K8s集群上dockerize和运行node JS静态内容应用程序 我有一个静态web内容,我运行“npm run build”到终端,终端生成/build并将我的IIS web服务器定向到/build/Index.html 现在,我开始创建一个Docker文件,如何将我的nodeJS图像指向调用/build/Index.html文件 FROM node:carbon WORKDIR /app COPY /Core/* ./app npm run build EXPOSE 8080 C

需要建议在K8s集群上dockerize和运行node JS静态内容应用程序

我有一个静态web内容,我运行“npm run build”到终端,终端生成/build并将我的IIS web服务器定向到/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


是否有任何输入?

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

FROM node:8.9.3

假设:

  • 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",
      },
    
    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"]
    
    Dockerfile
    将如下所示:

      "scripts": {
        "start": "node ./index.html",
      },
    
    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),所以我在安装依赖项后添加了“npm run build”。我得到了一些错误
    [13:23:24]水管工发现未处理的错误:错误:错误:找不到带有单数glob的文件:/build/content/styles/bootstrap/bootstrap\u modal.css[13:23:24]水管工发现未处理的错误。我如何修复它?