Node.js 无法将React应用程序部署到Kubernetes

Node.js 无法将React应用程序部署到Kubernetes,node.js,reactjs,docker,jenkins,Node.js,Reactjs,Docker,Jenkins,我正试图通过Docker将使用CreateReact应用程序创建的应用程序部署到Kubernetes。 当docker文件尝试使用Jenkins管道创建容器时,失败并出现以下错误: “正在启动开发服务器 未能编译 ./src/index.js Module not found: Can't resolve './App.js' in '/app/src' 文件夹结构与默认的“create react app”文件夹结构完全相似 下面是Dockerfile: FROM node:10.6.0-

我正试图通过Docker将使用CreateReact应用程序创建的应用程序部署到Kubernetes。 当docker文件尝试使用Jenkins管道创建容器时,失败并出现以下错误: “正在启动开发服务器

未能编译

./src/index.js

Module not found: Can't resolve './App.js' in '/app/src'
文件夹结构与默认的“create react app”文件夹结构完全相似

下面是Dockerfile:

FROM node:10.6.0-jessie

# set working directory
RUN mkdir /app
WORKDIR /app
COPY . .

# add `/usr/src/app/node_modules/.bin` to $PATH
#ENV PATH /usr/src/app/node_modules/.bin:$PATH

RUN npm install
#RUN npm install react-scripts -g --silent

# start app
CMD ["npm", "start"]
我无法理解我可能会错在哪里

编辑1:我还想提到,我可以使用此配置在本地计算机上运行docker容器。 因此,任何帮助都将不胜感激

更新1:
我能够对pod内的容器执行kubectl exec-it pod_name-bash操作。由于某种原因,我发现“App.js”文件作为“App.js”复制到容器中“。由于linux区分大小写,因此无法找到该文件。更改index.js中的import语句修复了该问题。但我仍然不知道是什么原因导致文件以小写形式复制,因为在我的本地版本中,该文件以“App.js”的形式存在。

当您将部署过程调整到更适合生产的设置时,您遇到的问题将被忽略

您当前正在做的是在每个Kubernetes节点上安装所有(开发)依赖项,编译应用程序,然后启动开发Web服务器。这会使部署的构建不一致,并增加部署节点上的负载和膨胀


相反,您要做的是通过在生成机器上运行
npm run build
来创建一个生产就绪的生成,它将编译您的应用程序并输出到项目中的
build
文件夹。然后,您希望将此文件夹以
.zip
文件的形式传输到您的服务器,这将需要安装一个可用于生产的Web服务器(强烈建议使用Nginx,并且是行业标准),以便为您的版本中的静态文件提供服务。

请格式化您的问题。如果你能发布创建react应用程序的命令(创建react应用程序),那也太好了。@PeterIttner我使用了Github repo上给出的命令。准确地说是Npx和Npm。