services:
db:
image: postgres:17-alpine
shm_size: 1g
user: postgres
restart: always
healthcheck:
test: "pg_isready -U user --dbname=postgres"
interval: 10s
timeout: 5s
retries: 5
ports:
- 5430:5432
environment:
POSTGRES_USER: user
POSTGRES_DB: orbit_dev
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
valkey:
image: valkey/valkey:9.0-alpine
ports:
- '6379:6379'
volumes:
- valkey_data:/data
- ./etc/valkey.conf:/etc/valkey/valkey.conf
command: valkey-server /etc/valkey/valkey.conf
environment:
- ALLOW_EMPTY_PASSWORD=yes
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 5s
api:
build: ./api
volumes:
- ./api:/app
- /app/node_modules
ports:
- 3000:3000
env_file:
- api/.env.development
depends_on:
valkey:
condition: service_healthy
db:
condition: service_healthy
restart: always
volumes:
db_data:
valkey_data: