gpt4 book ai didi

reactjs - 无法使用 docker 容器运行 react 应用程序

转载 作者:行者123 更新时间:2023-12-02 11:26:04 24 4
gpt4 key购买 nike

我有一个 react-app,它简单地显示 hello-world 消息,但我喜欢通过 docker-container 运行该应用程序,但遇到了这个问题。在此消息之后,进程停止而不运行应用程序..

ℹ 「wds」: Project is running at http://172.17.0.2/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /app/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...

无法理解我应该做什么,因为我的应用程序非常小,Dockerfile 中有基本代码
FROM node:alpine
RUN mkdir /app
COPY . /app
WORKDIR /app
COPY package.json ./
RUN npm install
CMD ["npm", "start"]

我是否需要安装 webpack-dev-server,我尝试过但出现版本错误,例如“手动添加的服务器”的版本低于现有服务器。所以我重新安装了 webpack-dev-server。

我用“create-react-app”创建了应用程序,所以我认为每个依赖项都是自动管理的。
有谁知道,我该如何解决这个问题..提前谢谢(顺便说一句..)

我用来构建的命令: docker build . -t lucki
运行镜像的命令: docker run -p 3000:3000 lucki
这是项目结构: enter image description here

在 Dockerfile 中添加 DEBUG=* 后,我的响应为:
enter image description here

最佳答案

问题是如果不是交互式终端,开发模式将无法运行。
更改 docker 命令以包含交互式终端:
添加 -it 给您的docker run命令(-i 交互式,-t 伪 TTY)例如docker run -it -p 3000:3000 your_container规范故障排除
确保代码在没有 docker 的情况下运行
是否 npm start在命令行上工作?
显示调试信息
添加 DEBUG=*作为容器内的环境变量。 DEBUG是一个环境变量,用于控制许多 Node 模块的日志记录。
在您的 Dockerfile , 添加

ENV DEBUG=*
或者在命令行中添加 -e 'DEBUG=*'给您的 docker命令。
这可能有助于发现以某种方式被吞噬的错误消息
直接运行节点
而不是运行 npm start ,直接运行你的文件。
例如在您的 Dockerfile ,
CMD ["node", "index.js"]
尝试运行另一个 docker 容器
如果这是您的 docker 设置的问题,运行已知良好的容器可能会帮助您发现它。
docker run --rm -it node:alpine
改进
您的 Dockerfile也可以简化一点。
FROM node:alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
CMD ["npm", "start"]
  • mkdir不需要,因为 WORKDIR自动创建目录。
  • package*.json还将复制package-lock.json
  • --production将跳过安装 devDependencies
  • COPY命令 last 将更好地利用缓存(您不必重新运行 npm install,除非您的依赖项已更改)

  • 您可能还想使用 Tini . Tini 转发信号,表示 docker stop在交互式终端中按 control+c 实际上会立即停止节点进程。
    如果您使用的是 Docker 1.13+,请添加 --init到命令行以转发信号并获得进程。在旧版本上,按照说明 in the README

    关于reactjs - 无法使用 docker 容器运行 react 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61047861/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com