version: '3.8' services: # Основная БД для системных данных (JPA/Hibernate) jambo-postgres: image: postgres:15-alpine container_name: jambo-postgres environment: - POSTGRES_USER=jambotron_admin - POSTGRES_PASSWORD=jambo_secret_pass - POSTGRES_DB=jambotron_dev ports: - "5432:5432" volumes: - jambo_db_dev_data:/var/lib/postgresql/data networks: - jambotron-net # Гибкое хранилище для SaaS 2.0 (Метаданные контейнеров) jambotron-mongo: image: mongo:6.0 container_name: jambotron-mongo ports: - "27017:27017" volumes: - mongo_dev_data:/data/db networks: - jambotron-net # UI для управления БД (Postgres)[cite: 3] jambo-pgadmin: image: dpage/pgadmin4 container_name: jambo-pgadmin environment: - PGADMIN_DEFAULT_EMAIL=admin@jambotron.com - PGADMIN_DEFAULT_PASSWORD=admin labels: - "caddy=pgadmin.localhost" # Локальный домен вместо порта 5050 - "caddy.reverse_proxy={{upstreams 80}}" ports: - "5050:80" networks: - jambotron-net # Контроль кластера (вместо ручного терминала)[cite: 1, 3] portainer: image: portainer/portainer-ce:latest container_name: portainer-dev command: -H unix:///var/run/docker.sock ports: - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_dev_data:/data networks: - jambotron-net # Обратный прокси (Caddy) — сердце маршрутизации caddy: image: lucaslorentz/caddy-docker-proxy:latest container_name: caddy-dev ports: - "80:80" - "443:443" environment: - CADDY_INGRESS_NETWORKS=jambotron-net volumes: - /var/run/docker.sock:/var/run/docker.sock # Чтобы Caddy видел новые контейнеры[cite: 2, 3] - caddy_dev_data:/data networks: - jambotron-net restart: always networks: jambotron-net: external: true volumes: jambo_db_dev_data: mongo_dev_data: portainer_dev_data: caddy_dev_data: