99 lines
2.7 KiB
YAML
99 lines
2.7 KiB
YAML
networks:
|
|
dockernet:
|
|
external: true
|
|
name: dockernet
|
|
|
|
services:
|
|
anatomia-db:
|
|
container_name: anatomia-db
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: 'America/Araguaina'
|
|
POSTGRES_USER: ${POSTGRES_USER:-anatomia}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-anatomia}
|
|
POSTGRES_DB: ${POSTGRES_DB:-anatomia}
|
|
volumes:
|
|
- anatomia_db_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-anatomia}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
networks:
|
|
- dockernet
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
anatomia-api:
|
|
container_name: anatomia-api
|
|
build:
|
|
context: ./backend
|
|
restart: unless-stopped
|
|
depends_on:
|
|
anatomia-db:
|
|
condition: service_healthy
|
|
environment:
|
|
TZ: 'America/Araguaina'
|
|
DATABASE_URL: postgresql://${POSTGRES_USER:-anatomia}:${POSTGRES_PASSWORD:-anatomia}@anatomia-db:5432/${POSTGRES_DB:-anatomia}
|
|
PORT: 3333
|
|
MODELS_DIR: /app/models
|
|
volumes:
|
|
- anatomia_models_data:/app/models:ro
|
|
networks:
|
|
- dockernet
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
anatomia-web:
|
|
container_name: anatomia-web
|
|
build:
|
|
context: .
|
|
dockerfile: frontend/Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- anatomia-api
|
|
environment:
|
|
TZ: 'America/Araguaina'
|
|
# Lido pelo acme-companion (pareado com nginx-gen) para emitir/renovar
|
|
# o certificado Let's Encrypt deste domínio.
|
|
LETSENCRYPT_HOST: ${ANATOMIA_DOMAIN:-atlas.martinsevieira.adv.br}
|
|
networks:
|
|
dockernet:
|
|
# IP fixo para o vhost manual em docker/nginx/sites/*.conf poder
|
|
# apontar (proxy_pass) direto para este container, no mesmo padrão
|
|
# já usado para "frontend"/"backend" (ticketz) e "nextcloud".
|
|
# Confirme que este IP está livre em dockernet antes de subir!
|
|
ipv4_address: ${ANATOMIA_WEB_IP:-10.15.0.93}
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 256M
|
|
|
|
# One-off data pipeline: generates the seed GLB models + populates the DB.
|
|
# Run explicitly with: docker compose run --rm anatomia-pipeline
|
|
anatomia-pipeline:
|
|
container_name: anatomia-pipeline
|
|
build:
|
|
context: ./data-pipeline
|
|
profiles: ["tools"]
|
|
depends_on:
|
|
anatomia-db:
|
|
condition: service_healthy
|
|
anatomia-api:
|
|
condition: service_started
|
|
environment:
|
|
DATABASE_URL: postgresql://${POSTGRES_USER:-anatomia}:${POSTGRES_PASSWORD:-anatomia}@anatomia-db:5432/${POSTGRES_DB:-anatomia}
|
|
volumes:
|
|
- anatomia_models_data:/app/seed/models
|
|
networks:
|
|
- dockernet
|
|
|
|
volumes:
|
|
anatomia_db_data:
|
|
anatomia_models_data:
|