services: # Main ChatBot Application chatbot: build: context: . dockerfile: Dockerfile container_name: py_chatbot restart: unless-stopped ports: - "8080:8080" environment: # Database Configuration - DB_TYPE=sqlite - SQLITE_PATH=/app/data/chatbot.db # Flask Configuration - FLASK_HOST=0.0.0.0 - FLASK_PORT=8080 - FLASK_DEBUG=false - FLASK_SECRET_KEY=your-super-secret-key-change-this-in-production # Session Configuration - SESSION_LIFETIME_HOURS=24 - SESSION_COOKIE_SECURE=false - SESSION_COOKIE_HTTPONLY=true volumes: # Persist database and logs - chatbot_data:/app/data - chatbot_logs:/app/logs networks: - chatbot_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/"] interval: 30s timeout: 10s retries: 3 start_period: 30s # Optional: PostgreSQL Database (for production) #postgres: # image: postgres:15-alpine # container_name: py_chatbot_postgres # restart: unless-stopped # environment: # - POSTGRES_DB=chatbot # - POSTGRES_USER=chatbot_user # - POSTGRES_PASSWORD=secure_password_change_this # volumes: # - postgres_data:/var/lib/postgresql/data # - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro # networks: # - chatbot_network # profiles: # - postgres # Named Volumes volumes: chatbot_data: driver: local chatbot_logs: driver: local #postgres_data: # driver: local # Networks networks: chatbot_network: driver: bridge