Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 Docker镜像构建卡在ReactJS的“npm安装”中_Node.js_Reactjs_Docker_Npm_Kubernetes - Fatal编程技术网

Node.js Docker镜像构建卡在ReactJS的“npm安装”中

Node.js Docker镜像构建卡在ReactJS的“npm安装”中,node.js,reactjs,docker,npm,kubernetes,Node.js,Reactjs,Docker,Npm,Kubernetes,我正在为我的微服务应用程序制作一个kubernetes集群。 我正在构建docker映像,由于某种原因,它在@npm安装步骤中被卡住: 被困在这里: 当我使用node而不是node:alpine时,它会起作用。但它创建的图像大小为1GB+。这显然是我不想要的 注意:如果您想知道my package.json文件有什么内容,请注意: 我不确定运行npm install命令的问题是什么,这些日志似乎没有理由相信它们实际上有问题,我看到的只是一些关于某些软件包被弃用的警告消息,但事实上没有错误。不管怎

我正在为我的微服务应用程序制作一个kubernetes集群。 我正在构建docker映像,由于某种原因,它在@npm安装步骤中被卡住:

被困在这里:

当我使用node而不是node:alpine时,它会起作用。但它创建的图像大小为1GB+。这显然是我不想要的

注意:如果您想知道my package.json文件有什么内容,请注意:


我不确定运行npm install命令的问题是什么,这些日志似乎没有理由相信它们实际上有问题,我看到的只是一些关于某些软件包被弃用的警告消息,但事实上没有错误。不管怎样,您说过当您使用node而不是node:alpine时,它确实起作用,这可以帮助我们

通常你想要的是:构建应用程序并让它在单独的docker层中运行。为此,可以使用多级docker构建。通过这种方式,您将拥有一个单独的环境,您可以在其中根据需要构建应用程序节点,并单独运行它,比如说最小nginx。下面您可以看到一个支持此概念的Dockerfile示例

# build environment
FROM node as build
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
RUN npm install
COPY . ./
RUN npm run build

# production environment
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

你是说你得到了一个错误,但是我在docker build命令的日志中没有看到错误,只是一些关于一些软件包被弃用的警告,而且你应该尝试使用多阶段docker builds并实际构建react应用程序,而不是使用刚刚编辑过的dev versionI。你能帮忙吗?谢谢,这辆车造得真快。
FROM node:alpine
ENV CI=true
WORKDIR /app
COPY package.json ./
RUN npm install
COPY ./ ./ 
CMD ["npm", "start"]

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "axios": "^0.19.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

# build environment
FROM node as build
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
RUN npm install
COPY . ./
RUN npm run build

# production environment
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]