Отправка http-запроса с сервера django внутри контейнера docker на другой сервер, расположенный на localhost не внутри docker [duplicate]
У меня есть проект django внутри контейнера docker. У меня есть несколько контейнеров для backend, frontend, redis, celery и db, которые обслуживаются docker compose. Мне нужно отправить http-запрос, сделанный с помощью python lib requests, на сервер, который находится вне docker, но запущен на том же компьютере (на localhost). Этот код прекрасно работал, когда сервер django не находился внутри контейнера docker. В данный момент из этой функции выдается код состояния 500. Как я могу это сделать?
Функция, которая должна отправить запрос:
class ConnectLocalHost(APIView):
response = requests.post('http://127.0.0.1:9001')
return Httpresponse('Message sent', status=status.HTTP_200_OK)
Файл docker-compose.yml:
# docker-compose.yml
version: "3"
volumes:
db-data:
storage:
services:
backend:
working_dir: /backend
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8000:8000"
command: bash -c "
./wait-for-postgres.sh database user user123 postgres &&
python manage.py makemigrations --settings=test_project.prod_settings &&
python manage.py makemigrations task_manager_app --settings=test_project.prod_settings &&
python manage.py migrate --settings=test_project.prod_settings &&
python manage.py migrate task_manager_app --settings=test_project.prod_settings &&
python manage.py collectstatic --noinput --settings=test_project.prod_settings &&
python manage.py auto_superuser --settings=test_project.prod_settings &&
gunicorn test_project.wsgi:application --bind 0.0.0.0:8000"
volumes:
- storage:/backend/storage/
depends_on:
- database
- redis
environment:
REDIS_HOST: redis
POSTGRES_USER: user
POSTGRES_PASSWORD: user123
POSTGRES_DB: postgres
POSTGRES_PORT: 5432
restart: always
frontend:
working_dir: /frontend
build:
context: ./frontend
dockerfile: Dockerfile
command: yarn start
ports:
- "9000:9000"
depends_on:
- backend
restart: always
redis:
image: redis:alpine
expose:
- 6379
restart: always
celery:
working_dir: /backend
build:
context: ./backend
entrypoint: /backend/worker.sh
volumes:
- .:/app
- storage:/backend/storage/
environment:
CELERY_BROKER_URL: "redis://redis:6379/0"
CELERY_RESULT_BACKEND: "redis://redis:6379/0"
POSTGRES_HOST: database
POSTGRES_NAME: postgres
POSTGRES_USER: user
POSTGRES_PASSWORD: user123
POSTGRES_PORT: 5432
depends_on:
- database
- backend
- redis
restart: always
database:
image: postgres:14.2
volumes:
- db-data:/var/lib/postgresql/data/
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: user123
POSTGRES_DB: postgres
ports:
- "5432:5432"
restart: always
Я уже пытался переключить сеть на хост, но при подключении к базе данных возникали ошибки. Также я попытался добавить host.docker.internal:host-gateway, но ничего не изменилось.