96 lines
2.6 KiB
YAML
96 lines
2.6 KiB
YAML
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
|
|
environment:
|
|
- MONGO_INITDB_ROOT_USERNAME=root
|
|
- MONGO_INITDB_ROOT_PASSWORD=password
|
|
ports:
|
|
- "27017:27017"
|
|
volumes:
|
|
- mongo_dev_data:/data/db
|
|
networks:
|
|
- jambotron-net
|
|
|
|
mongo-express:
|
|
image: mongo-express
|
|
restart: always
|
|
ports:
|
|
- "8083:8081"
|
|
environment:
|
|
ME_CONFIG_MONGODB_URL: mongodb://root:password@mongodb:27017/
|
|
ME_CONFIG_BASICAUTH_USERNAME: admin
|
|
ME_CONFIG_BASICAUTH_PASSWORD: pass
|
|
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: |