Files
periodic-table/docker-compose.dev.yaml
2025-12-05 15:00:14 -03:00

51 lines
1.5 KiB
YAML

# Development docker-compose
# Use this for local development with hot reload
# Run: docker-compose -f docker-compose.dev.yaml up
services:
# ===========================================
# Keycloak Identity Provider
# ===========================================
keycloak:
image: quay.io/keycloak/keycloak:latest
container_name: keycloak
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
ports:
- "8081:8080"
command: start-dev
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/8080 && echo -e 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && cat <&3 | grep -q '200 OK'"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# ===========================================
# FastAPI Backend (with hot reload)
# ===========================================
fastapi-app:
build:
context: ./backend
dockerfile: Dockerfile
container_name: fastapi-app
ports:
- "8080:8080"
volumes:
- ./backend:/app
env_file:
- .env
environment:
# Super Admin credentials (optional - if set, creates master user at startup)
- SUPER_ADMIN_USERNAME=${SUPER_ADMIN_USERNAME:-}
- SUPER_ADMIN_EMAIL=${SUPER_ADMIN_EMAIL:-}
- SUPER_ADMIN_PASSWORD=${SUPER_ADMIN_PASSWORD:-}
depends_on:
keycloak:
condition: service_healthy
networks:
default:
name: keycloak-auth-network