Files
condado-newsletter/docker-compose.yml
Gabriel Sancho 73c51e514c
Some checks failed
Build And Publish Production Image / Build And Publish Production Image (push) Failing after 7s
fix: update Docker Compose configuration for service names and database connection
2026-03-28 03:24:00 -03:00

92 lines
3.2 KiB
YAML

services:
# ── PostgreSQL ───────────────────────────────────────────────────────────────
postgres:
image: postgres:16-alpine
restart: unless-stopped
container_name: condado-newsletter-postgres
environment:
POSTGRES_DB: condado
POSTGRES_USER: ${SPRING_DATASOURCE_USERNAME}
POSTGRES_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${SPRING_DATASOURCE_USERNAME} -d condado"]
interval: 10s
timeout: 5s
retries: 5
# ── Backend (Spring Boot) ────────────────────────────────────────────────────
backend:
container_name: condado-newsletter-backend
build:
context: ./backend
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
SPRING_PROFILES_ACTIVE: dev
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/condado
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
APP_PASSWORD: ${APP_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
JWT_EXPIRATION_MS: ${JWT_EXPIRATION_MS}
MAIL_HOST: ${MAIL_HOST}
MAIL_PORT: ${MAIL_PORT}
MAIL_USERNAME: ${MAIL_USERNAME}
MAIL_PASSWORD: ${MAIL_PASSWORD}
IMAP_HOST: ${IMAP_HOST}
IMAP_PORT: ${IMAP_PORT}
IMAP_INBOX_FOLDER: ${IMAP_INBOX_FOLDER}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_MODEL: ${OPENAI_MODEL}
LLAMA_BASE_URL: ${LLAMA_BASE_URL}
LLAMA_MODEL: ${LLAMA_MODEL}
APP_RECIPIENTS: ${APP_RECIPIENTS}
extra_hosts:
- "celtinha.desktop:host-gateway"
- "host.docker.internal:host-gateway"
# ── Frontend + Nginx ─────────────────────────────────────────────────────────
nginx:
container_name: condado-newsletter-frontend
build:
context: ./frontend
dockerfile: Dockerfile
args:
VITE_API_BASE_URL: ${VITE_API_BASE_URL}
restart: unless-stopped
depends_on:
- backend
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.condado.rule=Host(`condado-newsletter.lab`)"
- "traefik.http.services.condado.loadbalancer.server.port=80"
- "homepage.group=Hyperlink"
- "homepage.name=Condado Newsletter"
- "homepage.description=Automated newsletter generator using AI"
- "homepage.logo=claude-dark.png"
- "homepage.href=http://condado-newsletter.lab"
# ── Mailhog (DEV ONLY — SMTP trap) ───────────────────────────────────────────
mailhog:
container_name: condado-newsletter-mailhog
image: mailhog/mailhog:latest
restart: unless-stopped
ports:
- "8025:8025"
volumes:
postgres-data:
networks:
traefik:
external: true
name: traefik