Files
podcastic/docker-compose.yml
T

75 lines
1.6 KiB
YAML

version: '3.8'
services:
mongodb:
image: mongo:latest
container_name: podcastic-mongodb
restart: unless-stopped
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
networks:
- podcastic
redis:
image: redis:7-alpine
container_name: podcastic-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- podcastic
backend:
image: node:20-alpine
container_name: podcastic-backend
restart: unless-stopped
working_dir: /app
ports:
- "5000:5000"
environment:
NODE_ENV: production
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:-}
volumes:
- ./backend:/app
command: sh -c "npm install && npm run build && node dist/index.js"
depends_on:
- mongodb
- redis
networks:
- podcastic
frontend:
image: node:20-alpine
container_name: podcastic-frontend
restart: unless-stopped
working_dir: /app
ports:
- "3579:3579"
environment:
VITE_API_URL: http://localhost:5000/api
volumes:
- ./frontend:/app
command: sh -c "npm install && npm run build && npm install -g serve && serve -s dist -l 3579"
depends_on:
- backend
networks:
- podcastic
volumes:
mongodb_data:
redis_data:
networks:
podcastic:
driver: bridge