Caddy Docker compose ломается при добавлении внутренней сети

Я докеризирую свое веб-приложение Django, которое использует базу данных postgres. Сервируется через Caddy.

Используя caddy-docker-proxy, я смог заставить свой контейнер django/веб-приложение работать с Caddy. Но когда я добавил свою базу данных postgres в файл compose, Caddy больше не перенаправлял мой домен на django.

enter image description here]1

Вместо этого я получаю сообщение Not Found. Вот мой полный файл docker compose

version: "3.7"
services:

  web:
    build: .
    command: sh -c "gunicorn notobackend.wsgi:application --bind 0.0.0.0:8000"
    restart: always
    ports:
      - "8000:8000"
    expose:
      - 8000
    environment:
      - POSTGRES_DB=supadb
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    networks:
      - caddy
      - internal
    container_name: web
    depends_on:
      - db
    links:
      - db:db
    labels:
      caddy: supa.blog
      caddy.reverse_proxy: "{{upstreams 8000}}"
    env_file:
      - .env

  db:
    container_name: db
    image: postgres:latest 
    restart: always
    expose: 
      - 5432
    ports:
      - 5432
    environment:
      - POSTGRES_DB=supadb
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - './data/db:/var/lib/postgresql/data'
    networks:
      - internal

  caddy:
      image: lucaslorentz/caddy-docker-proxy:ci-alpine
      ports:
        - 80:80
        - 443:443
      environment:
        - CADDY_INGRESS_NETWORKS=caddy
      networks:
        - caddy
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
        - caddy_data:/data
      restart: unless-stopped
      
networks:
        caddy:
                external: true
        internal:
                external: false
                driver: bridge

volumes:
  caddy_data: {}

Если я удалю "внутреннюю" сеть из службы db, Caddy корректно обслуживает мое веб-приложение django, но теперь я получаю ошибку 500 сервера, поскольку моя db не находится в той же сети, что и django. enter image description here

Я подозреваю, что проблема в {{upstreams 8000}}, но я не уверен, как на это ориентироваться.

Почему {{upstreams 8000}} не работает, когда db находится во внутренней сети?

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