77 lines
2.2 KiB
YAML
77 lines
2.2 KiB
YAML
services:
|
|
dev:
|
|
image: node:22-alpine
|
|
working_dir: /workspace
|
|
ports:
|
|
- "43173:43173"
|
|
- "8888:8888"
|
|
environment:
|
|
- NODE_ENV=development
|
|
- HOST=0.0.0.0
|
|
- PORT=8888
|
|
- FRONTEND_URL=${FRONTEND_URL:-https://idev.bitpd.com}
|
|
- DATABASE_URL=postgresql://incudal:incudal_dev_password@db:5432/incudal
|
|
- REDIS_URL=redis://redis:6379
|
|
- CHOKIDAR_USEPOLLING=true
|
|
- WATCHPACK_POLLING=true
|
|
- DB_POOL_MAX=${DB_POOL_MAX:-20}
|
|
- DB_POOL_MIN=${DB_POOL_MIN:-5}
|
|
- DB_CONNECTION_TIMEOUT=${DB_CONNECTION_TIMEOUT:-5000}
|
|
- DB_IDLE_TIMEOUT=${DB_IDLE_TIMEOUT:-30000}
|
|
- DB_STATEMENT_TIMEOUT=${DB_STATEMENT_TIMEOUT:-30000}
|
|
- DB_QUERY_TIMEOUT=${DB_QUERY_TIMEOUT:-30000}
|
|
- TRAFFIC_CONCURRENCY_PER_HOST=${TRAFFIC_CONCURRENCY_PER_HOST:-10}
|
|
- TRAFFIC_HOST_CONCURRENCY=${TRAFFIC_HOST_CONCURRENCY:-3}
|
|
- DB_WORKER_BACKOFF_MS=${DB_WORKER_BACKOFF_MS:-15000}
|
|
volumes:
|
|
- .:/workspace
|
|
- node_modules:/workspace/node_modules
|
|
- client_node_modules:/workspace/client/node_modules
|
|
- server_node_modules:/workspace/server/node_modules
|
|
- pnpm_store:/root/.local/share/pnpm/store
|
|
command: >
|
|
sh -lc "
|
|
corepack enable &&
|
|
corepack prepare pnpm@9.14.2 --activate &&
|
|
pnpm install &&
|
|
pnpm --filter server exec prisma migrate deploy &&
|
|
pnpm exec concurrently
|
|
-n server,client,migrate
|
|
-c blue,green,magenta
|
|
\"pnpm --filter server dev\"
|
|
\"pnpm --filter client dev --host 0.0.0.0 --port 43173\"
|
|
\"node scripts/watch-migrations.mjs\"
|
|
"
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
- POSTGRES_USER=incudal
|
|
- POSTGRES_PASSWORD=incudal_dev_password
|
|
- POSTGRES_DB=incudal
|
|
volumes:
|
|
- postgres_data_dev:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U incudal"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
volumes:
|
|
- redis_data_dev:/data
|
|
|
|
volumes:
|
|
node_modules:
|
|
client_node_modules:
|
|
server_node_modules:
|
|
pnpm_store:
|
|
postgres_data_dev:
|
|
redis_data_dev:
|