version: '3.8'
services:
# Redis Cache Service
redis:
image: redis:7-alpine
container_name: controles_redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
networks:
- controles_network
# Flask Application
app:
build: .
container_name: controles_app
- "5000:5000"
environment:
- FLASK_APP=app.py
- FLASK_ENV=production
- REDIS_URL=redis://redis:6379/0
- DATABASE_URL=sqlite:///app/database.db
- ADMIN_OTP_SECRET=JBSWY3DPEHPK3PXP
- ./database.db:/app/database.db
- ./admin_qr.png:/app/admin_qr.png
depends_on:
condition: service_healthy
redis_data:
driver: local
controles_network:
driver: bridge