Caddy Docker compose ломается при добавлении внутренней сети
Я докеризирую свое веб-приложение Django, которое использует базу данных postgres. Сервируется через Caddy.
Используя caddy-docker-proxy, я смог заставить свой контейнер django/веб-приложение работать с Caddy. Но когда я добавил свою базу данных postgres в файл compose, Caddy больше не перенаправлял мой домен на django.
]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.
Я подозреваю, что проблема в {{upstreams 8000}}
, но я не уверен, как на это ориентироваться.
Почему {{upstreams 8000}}
не работает, когда db находится во внутренней сети?