gpt4 book ai didi

node.js - 我如何从本地主机服务?

转载 作者:行者123 更新时间:2023-12-02 19:46:11 25 4
gpt4 key购买 nike

我有一个使用 webpack 开发服务器的 react 应用程序。服务器代理到另一个用于 CRUD 的 Web api。我可以在本地运行时使用它,但是在构建容器时,应用程序无法连接。
Error
Webpack 配置

  devServer: {
contentBase: resolve(__dirname, 'dist'),
host: 'localhost',
port: 3001,
hot: true,
open: true,
inline: true,
proxy: {
'/api': {
target: 'http://localhost:4567/streams',
secure: false,
pathRewrite: { '^/api': '' },
changeOrigin: true,
},
},
},
dockerfile
FROM node:12-alpine

WORKDIR /app

COPY ./package*.json ./

RUN npm ci

COPY . ./
docker 撰写
version: '3.7'

services:
web:
container_name: fm-admin
restart: always
build:
context: .
ports:
- '3001:3001'
command: npm start
environment:
- CHOKIDAR_USEPOLLING=true
stdin_open: true
此外,当我将主机从 localhost 交换到 0.0.0.0 时,我收到以下错误
[HPM] Error occurred while trying to proxy request  from 0.0.0.0:3001 to http://localhost:4567/streams (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
但是流 api 正在运行。
希望我能在这里得到一些帮助。

最佳答案

问题中没有非常准确地描述整个上下文,尤其是在 'http://localhost:4567 监听的服务。
我假设 target: 'http://localhost:4567/streams' 在容器内执行,该容器正在监听 :3000 以尝试代理到 :4567
如果这是真的,那么缺乏连接是正常的。在容器内使用 localhost 时,容器将尝试在 :4567 上代理到自身。
如果您尝试访问正在监听主机上的 :4567 的服务,您可能需要使用 docker0 接口(interface)的 IP 地址,而不是 this post 中建议的 localhost

关于node.js - 我如何从本地主机服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63219878/

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