Files
LuaMicroservices/docker-compose.yml
Christian van Dijk 94b4f31102
Some checks failed
CI / Lint (push) Failing after 39s
CI / Build (push) Has been skipped
CI / Test (push) Has been skipped
CI / Helm Lint (push) Successful in 13s
🎉 initial commit
2026-02-23 09:47:16 +01:00

110 lines
2.6 KiB
YAML

services:
api:
build:
context: ./devices-api
dockerfile: Dockerfile
container_name: handheld-api
ports:
- "8080:8080"
volumes:
- ./devices-api:/app
env_file:
- .env
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DB_HOST=postgres
- DB_PORT=5432
- DB_NAME=handheld_devices
- DB_USER=devices_user
- DB_PASSWORD=devices_password
- REDIS_HOST=redis
- REDIS_PORT=6379
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:8080/health/ready || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
postgres:
image: postgres:15-alpine
container_name: handheld-postgres
ports:
- "5432:5432"
environment:
POSTGRES_DB: handheld_devices
POSTGRES_USER: devices_user
POSTGRES_PASSWORD: devices_password
volumes:
- ./postgres_data:/var/lib/postgresql/data
- ./devices-api/migrations/001_create_devices.sql:/docker-entrypoint-initdb.d/001_create_devices.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U devices_user -d handheld_devices"]
interval: 5s
timeout: 3s
retries: 10
redis:
image: redis:7-alpine
container_name: handheld-redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: handheld-frontend
ports:
- "8090:8090"
env_file:
- .env
environment:
- API_URL=http://localhost:8080
depends_on:
api:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:8090/health || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 5s
worker:
build:
context: ./devices-worker
dockerfile: Dockerfile
container_name: handheld-worker
volumes:
- ./devices-worker:/app
env_file:
- .env
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DB_HOST=postgres
- DB_PORT=5432
- DB_NAME=handheld_devices
- DB_USER=devices_user
- DB_PASSWORD=devices_password
- REDIS_HOST=redis
- REDIS_PORT=6379
healthcheck:
test: ["CMD-SHELL", "pgrep -f 'worker.lua' || exit 1"]
interval: 10s
timeout: 3s
retries: 3