Прокси моего приложения React не работает в контейнере docker

Когда я работаю без docker (просто запускаю React и Django в 2 отдельных терминалах), все работает нормально, но когда использую docker-compose, прокси не работает и я получаю эту ошибку:

Proxy error: Could not proxy request /doc from localhost:3000 to http://127.0.0.1:8000.
See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).

Работа осложняется тем, что каждый раз после изменения package.json нужно удалять node_modules и package-lock.json, а затем переустанавливать по npm install (из-за кэша прокси изменения в package.json не применяются к контейнеру). Я уже пробовал указывать эти опции прокси:

"proxy": "http://localhost:8000/",
"proxy": "http://localhost:8000",
"proxy": "http://127.0.0.1:8000/",
"proxy": "http://0.0.0.0:8000/",
"proxy": "http://<my_ip>:8000/",
"proxy": "http://backend:8000/", - django image name

Ничего не помогает, прокси работает только при запуске без контейнера, поэтому я делаю вывод, что проблема в настройках docker. Я видел какое-то решение с образом nginx, оно не работает для меня, на стадии разработки мне не нужен nginx и сопутствующие миллионы дополнительных проблем, связанных с ним, должен быть способ решить проблему без nginx. docker-compose.yml:

version: "3.8"

services:
  backend:
    build: ./monkey_site
    container_name: backend
    command: python manage.py runserver 127.0.0.1:8000
    volumes:
      - ./monkey_site:/usr/src/monkey_site
    ports: 
      - "8000:8000"
    environment:
      - DEBUG=1
      - DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1
      - CELERY_BROKER=redis://redis:6379/0
      - CELERY_BACKEND=redis://redis:6379/0
    depends_on:
      - redis
    networks:
      - proj_network

  frontend:
    build: ./frontend
    container_name: frontend
    ports: 
      - "3000:3000"
    command: npm start
    volumes:
      - ./frontend:/usr/src/frontend
      - ./monkey_site/static:/usr/src/frontend/src/static    
    depends_on:
      - backend
    networks:
      - proj_network

  celery: 
    build: ./monkey_site
    command: celery -A monkey_site worker --loglevel=INFO
    volumes:
      - ./monkey_site:/usr/src/monkey_site/
    depends_on:
      - backend 
      - redis

  redis:
    image: "redis:alpine"

networks:
  proj_network:

React Dockerfile:

FROM node:18-alpine
WORKDIR /usr/src/frontend
COPY package.json .
RUN npm install
EXPOSE 3000

Django Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /usr/src/monkey_site
COPY requirements.txt ./
RUN pip install -r requirements.txt

package.json:

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://127.0.0.1:8000",
  "dependencies": {
...

В Django у меня есть django-cors-headers и все настройки вроде:

CORS_ALLOWED_ORIGINS = [
    'http://localhost:3000', 
    'http://127.0.0.1:3000',
]

У кого-нибудь есть идеи, как решить эту проблему?

Вернуться на верх