【问题标题】:How do I resolve this docker container error in my node and reactjs application如何在我的节点和 reactjs 应用程序中解决此 docker 容器错误
【发布时间】:2023-01-13 00:39:15
【问题描述】:

我不知道还有什么办法可以解决这个问题。在运行我的 docker 容器构建后,我一直看到这个错误。当我尝试从我的 Web 浏览器访问该应用程序时,出现以下错误:

Error: ENOENT: no such file or directory, stat '/app/server/public/index.html'

很明显有些东西没有被复制。我仍在学习这个 docker 容器并且正在学习教程。我已经与我的教程代码交叉检查,它们完全相同。他的代码有效,但我的代码无效。

这是我的 dockerfile 代码:

FROM node:lts-alpine

WORKDIR /app

COPY package*.json ./

COPY client/package*.json client/
RUN npm run install-client  --only=production

COPY server/package*.json server/
RUN npm run install-server  --only=production

COPY client/ client/
RUN npm run build --prefix client

COPY server/ server/

USER node

CMD [ "npm", "start", "--prefix", "server" ]

EXPOSE 5000

我的 reactjs package.json 构建脚本:

 "build": "set BUILD_PATH=../server/public && react-scripts build",

我在我的 nasa 项目目录中同时运行了 docker build 和 run 代码

Desktop\Node js master class\NASA>

在 docker build 之后,似乎没有任何内容被复制到 /app 中。我不知道我到底需要做什么来解决这个问题。这是我尝试通过网络浏览器访问应用程序时再次遇到的错误:

Error: ENOENT: no such file or directory, stat '/app/server/public/index.html'

【问题讨论】:

  • 你是如何启动容器的? docker run 命令或docker-compose.yml 是什么样子的? (是否有 docker run -v 选项或 Compose volumes: 覆盖图像的 /app 目录?)
  • 我使用以下代码运行容器:docker run -it -p 5000:5000 kings19/nasa-project
  • 你知道可能是什么问题吗?这个错误现在已经出现 3 天了,它变得令人沮丧。我已经浏览了几乎整个谷歌页面来寻找解决方案
  • 它看起来像你RUN npm run build --prefix client,但不要对server 子目录做同样的事情;你也需要这样做吗?您也可以尝试docker run --rm -it kings19/nasa-project sh 在基于图像的新容器中获取交互式调试 shell,以查看那里有什么,没有什么。
  • 在我进一步搜索以了解如何检查子列表后,您给我的代码行帮助我查看了容器内的内容。我一直怀疑问题出在我运行 npm run build --prefix client 时。这会在我的客户端调用 npm 包脚本,它会做两件事。首先,它在服务器端创建一个名为 public 的文件夹路径,并在其中运行客户端构建。这使得客户端构建文件在服务器/公共路径中可用。不知何故,dockerfile 没有执行此任务。它不在服务器/公共文件夹中构建反应构建文件。我需要想办法。

标签: node.js reactjs docker


【解决方案1】:

因为我没有看到任何答案,所以以防万一有人遇到同样的问题,它不起作用,因为你的反应构建脚本是针对 windows 的,因为你使用 lts-alpine(linux),你可以保留 MacOS/linux cmd 行:

"build": "BUILD_PATH=../server/public react-scripts build",

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2019-08-07
    • 2020-08-10
    • 2021-10-20
    • 2011-06-08
    • 2010-11-06
    相关资源
    最近更新 更多