【问题标题】:Front end doesn't seem to start in docker of MERN appilcation前端似乎没有在 MERN 应用程序的 docker 中启动
【发布时间】:2020-03-31 08:18:16
【问题描述】:

我用 mongo+express+react+node 创建了一个简单的应用程序。

这是文件/文件夹的结构

- client/
- - package.json
- - index.js <— frontend
- - Dockerfile
- server.js <— backend
- Dockerfile
- docker-compose.yml
- package.json

package.json 在核心文件夹中调用"dev": "concurrently \"npm run server\" \"npm run client\""

客户端文件夹中的

Dockerfile 如下所示:

FROM node:10.15.3
WORKDIR /usr/app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm","start"]

Dockerfile 在核心文件夹中:

FROM node:10.15.3
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 8080
CMD ["npm","start"]

docker-compose.yml我放在这里https://gist.github.com/2u4u/2b13910c220f5a647f15d198a50ebe2a

当我启动 docker 时,我看到了这个:

[HPM]Proxy created: /api  -> http://[::1]:8080/
ℹ️ 「wds」: Project is running at http://172.17.0.3/
ℹ️ 「wds」: webpack output is served from 
ℹ️ 「wds」: Content not from webpack is served from /usr/app/public
ℹ️ 「wds」: 404s will fallback to /
Starting the development server...

是客户端出错了吗?

在没有 docker 的情况下运行良好。我该如何解决?

【问题讨论】:

  • 我在你的 docker-compose.yml 链接上收到 404
  • @MaximOrlov 抱歉。修复。 спасибо :)

标签: node.js reactjs docker


【解决方案1】:

您的客户端和/或服务器很可能正在侦听 localhost,当您将应用程序容器化时会发生变化。那是因为容器有自己的 localhost,它与主机上的 localhost 不同。您的应用正在侦听来自容器内部的请求,而来自容器外部(您的主机)的所有请求都将被忽略。

我看到您正在使用 http-proxy-middlewarewebpack-dev-server。我对第一个不是很熟悉,但是使用 WDS 你可以添加标志 --host 0.0.0.0 这样 webpack 开发服务器将监听所有流量而不仅仅是本地主机。您必须对http-proxy-middleware 执行类似的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-17
    • 2017-01-29
    • 1970-01-01
    • 2014-05-06
    • 2017-10-24
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多