通过 docker 运行时无法从前端向后端发出正确的请求
我通过 docker-compose 运行所有 3 个容器(前面是 react,后面是 node 和 postgres):
version: '3'
services:
front-react:
build:
context: ./client
environment:
NODE_ENV: development
depends_on:
- server-dev
volumes:
- ./client:/client
- /client/node_modules
ports:
- "3000:3000"
server-dev:
build:
context: ./server
environment:
NODE_ENV: development
ports:
- "5002:5002"
depends_on:
- database
volumes:
- ./server:/server
- /server/node_modules
database:
image: postgres:14.2-alpine
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=postgres
- POSTGRES_DB=rssParser
ports:
- "5432:5432"
volumes:
server-dev:
一切正常,前端启动并运行,后端也启动并运行并通过解析器不断将新闻上传到数据库。但是,一旦我通过指向基本类型的链接发出请求:
http://127.0.0.1:5002/api/login
给我一个错误。也通过邮递员!服务器ip可能有错误,它不应该是localhost,而是docker容器的名称或其ip,但他们也没有给出结果......我也尝试过提出请求:
http://rss_parser_server-dev_1:5002/api/registration
http://localhost.rss_parser_server-dev_1:5002/api/registration
http://rss_parser_server-dev:5002/api/registration
http://172.20.0.3:5002/api/registration
以下是正在运行的容器:
Name Command State Ports
------------------------------------------------------------------------------------------------------------
rss_parser_database_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp,:::5432->5432/tcp
rss_parser_front-react_1 docker-entrypoint.sh /bin/ ... Up 0.0.0.0:3000->3000/tcp,:::3000->3000/tcp
rss_parser_server-dev_1 docker-entrypoint.sh /bin/ ... Up 0.0.0.0:5002->5002/tcp,:::5002->5002/tcp
这是服务器IP:
sudo docker inspect rss_parser_server-dev_1 | grep "IPAddress"
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "172.20.0.3"
我不明白我在哪里搞砸了......请帮忙。也许需要在某个地方向主机写一些东西,但是为什么请求也不通过邮递员工作......
邮递员错误:错误:连接 ECONNREFUSED 172.20.0.3:5002