version: '3.8' services: discord-bot: build: context: . dockerfile: Dockerfile container_name: discord-bot restart: unless-stopped volumes: # Seed file for initial database population (read-only) - ./seed.json:/app/seed.json:ro - ./conf:/app/conf:ro # Sound effects directory (read-only) - ./sfx:/app/sfx:ro # Database persistence - ./data:/app/data # Optional: Mount logs directory if you want persistent logs # - ./logs:/app/logs # Optional: Environment variables environment: - NODE_ENV=production # - DEBUG=true # Uncomment for debug mode # Optional: Resource limits deploy: resources: limits: memory: 512M reservations: memory: 256M # Optional: Health check healthcheck: test: ["CMD", "node", "-e", "process.exit(0)"] interval: 30s timeout: 10s retries: 3 start_period: 40s # Optional: Add a volume backup service # backup: # image: alpine:latest # container_name: ghbot-backup # volumes: # - ./config.json:/backup/config.json:ro # - ./conf:/backup/conf:ro # - ./sfx:/backup/sfx:ro # command: | # sh -c " # echo 'Creating backup...' # tar czf /backup/ghbot-backup-$(date +%Y%m%d_%H%M%S).tar.gz -C /backup config.json conf sfx # echo 'Backup complete' # " # profiles: # - backup # Optional: Create named volumes for persistent data # volumes: # ghbot_logs: # driver: local