Docker Django服务没有通信



我正在尝试让我的侦听器服务在应用程序服务的API上进行POST。应用程序服务的运行速度为0.0.0.0:8000,侦听器服务正试图在此地址发布,但数据没有添加到数据库中。

我不确定我是否正确配置了这一点,非常感谢您的帮助。

docker-compose.yml

services:
db:
image: postgres:13.4
env_file:
- ./docker/env.db
ports:
- 5432:5432
volumes:
- db_data:/var/lib/postgresql/data
app:
build:
context: .
dockerfile: ./docker/Dockerfile
env_file:
- ./docker/env.db
- ./.env
volumes:
- .:/opt/code
ports:
- 8000:8000
- 3000:3000
depends_on:
- db
command: bash ./scripts/runserver.sh
listener:
image: scooprank_app
env_file:
- ./.env
container_name: listener
command: npm run listen
depends_on:
- app
restart: always

如果服务在同一个docker compose文件或同一个docker网络上。为每个服务指定容器名称,并在发出GET或POST请求时使用容器名称代替IP地址。

如果容器名称是django_app,那么在侦听器应用程序中,您可以向http://django_app:8000发送POST请求

尝试在python manage.py runserver 0.0.0.0中更改运行runserver脚本中manage.py的行,这将把主机127.0.0.1绑定到0.0.0.0。
重要信息:settings.py中的allowed_hosts字段不应该指代主机0.0.0.0
这对我有效。

最新更新