version: '3.8' services: web: build: context: . dockerfile: Dockerfile ports: - "5000:5000" environment: - FLASK_ENV=development - FLASK_DEBUG=1 - DATABASE_URL=sqlite:////tmp/app.db - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 - INSTANCE_PATH=/tmp/instance - SECRET_KEY=${SECRET_KEY:-default-dev-key-change-in-production} - OPENAI_API_KEY=${OPENAI_API_KEY:-sk-mock-key-for-development} volumes: - ./app:/app/app - ./app/models:/app/models depends_on: - redis restart: unless-stopped healthcheck: test: ["CMD", "/app/healthcheck.sh"] interval: 30s timeout: 10s retries: 3 start_period: 40s redis: image: redis:alpine ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 volumes: redis_data: