| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- services:
- postgres:
- image: postgres:16-alpine
- container_name: hr-lab-postgres
- environment:
- POSTGRES_DB: hr_lab
- POSTGRES_USER: hr_app
- POSTGRES_PASSWORD: hr_app_password
- ports:
- - "5432:5432"
- volumes:
- - postgres-data:/var/lib/postgresql/data
- - ../storage/backups:/backups
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -U hr_app -d hr_lab"]
- interval: 10s
- timeout: 5s
- retries: 10
- redis:
- image: redis:7-alpine
- container_name: hr-lab-redis
- ports:
- - "6379:6379"
- healthcheck:
- test: ["CMD", "redis-cli", "ping"]
- interval: 10s
- timeout: 5s
- retries: 10
- rabbitmq:
- image: rabbitmq:3.13-management-alpine
- container_name: hr-lab-rabbitmq
- environment:
- RABBITMQ_DEFAULT_USER: hr_app
- RABBITMQ_DEFAULT_PASS: hr_app_password
- ports:
- - "5672:5672"
- - "15672:15672"
- healthcheck:
- test: ["CMD", "rabbitmq-diagnostics", "ping"]
- interval: 10s
- timeout: 5s
- retries: 10
- backend:
- build:
- context: ..
- dockerfile: deploy/backend.Dockerfile
- container_name: hr-lab-backend
- environment:
- SPRING_PROFILES_ACTIVE: lab
- DB_URL: jdbc:postgresql://postgres:5432/hr_lab
- DB_USERNAME: hr_app
- DB_PASSWORD: hr_app_password
- REDIS_HOST: redis
- RABBITMQ_HOST: rabbitmq
- RABBITMQ_USERNAME: hr_app
- RABBITMQ_PASSWORD: hr_app_password
- JWT_SECRET: local-development-secret-please-change-32bytes
- TASKS_INLINE: "true"
- LAB_EMPLOYEE_COUNT: "2000"
- LAB_CANDIDATE_COUNT: "500"
- LAB_ATTENDANCE_DAYS: "180"
- EXPORT_DIR: /app/storage/exports
- IMPORT_DIR: /app/storage/imports
- ports:
- - "8080:8080"
- volumes:
- - ../storage:/app/storage
- depends_on:
- postgres:
- condition: service_healthy
- redis:
- condition: service_healthy
- rabbitmq:
- condition: service_healthy
- frontend:
- build:
- context: ..
- dockerfile: deploy/frontend.Dockerfile
- container_name: hr-lab-frontend
- ports:
- - "5173:80"
- depends_on:
- - backend
- volumes:
- postgres-data:
|