46 lines
967 B
YAML
46 lines
967 B
YAML
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile
|
|
environment:
|
|
NODE_ENV: production
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
mongodb:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- node
|
|
- -e
|
|
- "require('http').get('http://127.0.0.1:3000/', r => process.exit(r.statusCode < 500 ? 0 : 1)).on('error', () => process.exit(1))"
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 30s
|
|
|
|
mongodb:
|
|
image: mongo:4.4.29
|
|
volumes:
|
|
- mongodb-data:/data/db
|
|
healthcheck:
|
|
test: ["CMD", "mongo", "--quiet", "--eval", "db.adminCommand('ping').ok"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
|
|
volumes:
|
|
mongodb-data:
|