【问题标题】:404 when serving react application in docker container在 docker 容器中提供 react 应用程序时出现 404
【发布时间】:2020-06-18 12:05:49
【问题描述】:

我已经使用 create-react-app 创建了一个 react 应用程序,并使用以下 docker 文件构建了一个 docker 映像。

FROM node:alpine AS builder
WORKDIR /app
RUN npm install
COPY . .
RUN npm run build

FROM node:alpine
WORKDIR /app
COPY --from=builder /app/build .
RUN npm install -g serve
EXPOSE 80
CMD serve -p 80 -s build

在运行容器并访问 localhost 上的端口 80 时,我遇到“404 找不到请求的路径”。容器使用命令 `docker run -p 80:80 "image name" 运行,输出为 "Accepting connections at http://localhost:80" 出现 404 的原因可能是什么,我该如何解决?

【问题讨论】:

  • 如果您更改应用程序端口并更改 docker 文件会发生什么情况,也许您的端口 80 正在运行的 Web 服务器使用,例如 apachenginx

标签: node.js reactjs docker containers


【解决方案1】:

Looking at the documentation of serve...您正在将/app/buildbuilder容器复制到新容器上的/app,然后调用serve,文件夹名称为build,该文件夹名称不存在。 (-s 不带参数`)

【讨论】:

  • 谢谢。将 COPY 行更改为 COPY --from=builder /app/build app/build 就可以了。
猜你喜欢
  • 2021-08-25
  • 2019-09-22
  • 1970-01-01
  • 2018-01-24
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2021-01-02
相关资源
最近更新 更多