Files
podcastic/docker-compose.yml
T

66 lines
1.4 KiB
YAML

version: '3.8'
services:
mongodb:
image: mongo:8
container_name: podcastic-mongodb
restart: unless-stopped
volumes:
- mongodb_data:/data/db
networks:
- podcastic_net
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
redis:
image: redis:7-alpine
container_name: podcastic-redis
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- podcastic_net
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
app:
build:
context: .
dockerfile: Dockerfile
container_name: podcastic-app
restart: unless-stopped
ports:
- "${PORT:-3579}:3579"
environment:
NODE_ENV: production
PORT: 3579
MONGODB_URI: mongodb://mongodb:27017/podcastic
REDIS_URL: redis://redis:6379
JWT_SECRET: ${JWT_SECRET:-change_me_in_production}
JWT_EXPIRES_IN: 7d
JWT_REFRESH_EXPIRES_IN: 30d
PODCAST_INDEX_API_KEY: ${PODCAST_INDEX_API_KEY:-}
PODCAST_INDEX_API_SECRET: ${PODCAST_INDEX_API_SECRET:-}
depends_on:
mongodb:
condition: service_healthy
redis:
condition: service_healthy
networks:
- podcastic_net
volumes:
mongodb_data:
redis_data:
networks:
podcastic_net:
driver: bridge