===== 4. Miniprojekt ===== Virtualizujte realizovanou Flask aplikaci pomocí Docker technologií. **1. Implementace Dockerfile (4 body)**: Vytvořte Dockerfile, který vytvoří funkční image Flask aplikace. Flask aplikace musí být dostupná z hostitelského systému pomocí mapování portů. **2. Implementace .dockerignore (2 body)**: Vytvořte soubor ''.dockerignore'', ve kterém vyloučíte nevhodné soubory a adresáře (např. ''.venv'', ''pycache'', ''.env''). **3. Implementace Docker Compose (6 bodů)**: Vytvořte soubor ''docker-compose.yaml'' s definovanou službou Flask aplikace. * Zajistěte načítání proměnných prostředí z externího ''.env'' souboru (API klíč Flask aplikace nebude natvrdo nastaven v obrazu). V odevzdaném repozitáři přiložte šablonu ''.env'' souboru. * V compose souboru nastavte Docker Volume pro databázi a tím zajistěte persistenci dat. **4. Implementace healthcheck (3 body)**: Do Flask aplikace vhodně vytvořte endpoint ''/health'', který využijete pro ověření stavu aplikace. Kontrolu nastavte s intervalem 60 sekund, timeout 20 sekund. **BONUS (+3 body):** Využijte image [[https://hub.docker.com/_/eclipse-mosquitto|Eclipse Mosquitto]] pro zprovoznení vlastního MQTT brokera. Do docker-compose souboru přidejte službu s MQTT brokerem a vhodně nastavte závislost (depends_on) mezi Flask aplikací a MQTT brokerem. Flask aplikaci vhodně nakonfigurujte a upravte tak, aby využívala tohoto MQTT brokera.