services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: stripstream POSTGRES_USER: stripstream POSTGRES_PASSWORD: stripstream ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U stripstream -d stripstream"] interval: 10s timeout: 5s retries: 5 meilisearch: image: getmeili/meilisearch:v1.12 environment: MEILI_MASTER_KEY: ${MEILI_MASTER_KEY:-change-me} ports: - "7700:7700" volumes: - meili_data:/meili_data healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:7700/health"] interval: 10s timeout: 5s retries: 5 api: build: context: .. dockerfile: apps/api/Dockerfile env_file: - ../.env ports: - "8080:8080" depends_on: postgres: condition: service_healthy meilisearch: condition: service_healthy healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/health"] interval: 10s timeout: 5s retries: 5 indexer: build: context: .. dockerfile: apps/indexer/Dockerfile env_file: - ../.env ports: - "8081:8081" depends_on: postgres: condition: service_healthy meilisearch: condition: service_healthy healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8081/health"] interval: 10s timeout: 5s retries: 5 admin-ui: build: context: .. dockerfile: apps/admin-ui/Dockerfile env_file: - ../.env ports: - "8082:8082" depends_on: api: condition: service_healthy healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8082/health"] interval: 10s timeout: 5s retries: 5 volumes: postgres_data: meili_data: