# Adatbázis Konténerizált MariaDB engine, ami tárolja a Telefonkönyv Webalkalmazás adatait. ## Táblák: ### users | **id** | **uname** | **pw** | **admin** | **note** | --- | --- | --- | --- | --- | | *int* | *varchar* | *varchar* | *tiny int - bool* | *text* | | *pk, ai* | *not null* | *not null* | *not null, default false* | *null* | ### contacts | **id** | **name** | **phone** | **address** | **note** | --- | --- | --- | --- | --- | | *int* | *varchar* | *varchar* | *varchar* | *text* | | *pk, ai* | *not null* | *not null* | *not null* | *null* | ## Futtatás: Az adatbázis konténert a `docker-compose.yml` file írja le. Futtatása a következő: ### Indítás ```bash docker compose up -d ``` > *Bizonyos operációs rendszereken `docker-compose up -d`* Logokkal való indításhoz a `docker compose logs` használható, folyamatos debug logokért a következő indítóparancs használatos Windows-on: ```bash docker compose up -d ; docker compose logs -f ``` > Linux alatt `docker compose up -d && docker compose logs -f` > Vagy `docker-compose up -d && docker-compose logs -f` ### Leállítás A konténer és hozzá tartozó network leállítása a következővel érhető el: ```bash docker compose down ``` > *Bizonyos operációs rendszereken `docker-compose down`* ### Linux - *sudo* probléma Néha Linux alatt - verziótól függően - gyakori probléma az, hogy minden docker és docker compose process *root* alatt fut. Ezért ilyenkör a következő parancsokkat érdemes használni: ```bash # Indítás: sudo docker compose up -d # Logok: sudo docker compose logs -f # Indítás - logokkal: sudo docker compose up -d && sudo docker compose logs -f # Leállítás: sudo docker compose down ``` Illetve a *Docker Compose* verziójától függően ugyan ez vonatkozik: ```bash # Indítás: sudo docker-compose up -d # Logok: sudo docker-compose logs -f # Indítás - logokkal: sudo docker-compose up -d && sudo docker-compose logs -f # Leállítás: sudo docker-compose down ``` ### Windows A Docker Dekstopot telepítve egyből lejön a `docker compose` parancs, amit cmd-ből, vagy PowerShell-ből tudunk használni, ugyan úgy, mint Linux alatt. > #### Fontos! > Fontos, hogy a cmd-t és a PowerShellt is ***adminisztrátorként*** futtassuk! ## Kapcsolódás A kapcsolódás a szokásos MariaDB SQL portokon működik a következő módon: - hostname: `localhost` vagy `127.0.0.1` - port: `3306` - database: `telefonkonyv` - user: `appuser` - password: `apppass` > Az adatbázis *root* felhasználójának a jelszava: `rootpw`, De ezek az adatok is mind konfigurálhatóak a `docker-compose.yml`-ben # Network Ahhoz, hogy a telefonkönyv alkalmazás konténerjei lássák egymást, egy közös networkön kell lenniük a fejlesztési időszak alatt. Ehhez a `telefonkonyv-net` network-öt létrehozzuk mindegyik Compose file alján. Így ugyan nem számít a sorrend, ahogy fel "up"-oljuk a konténereket, de néha warning-ot fog dobni, hogy a network már létezik. Tudjuk ellenőrizni, hogy fel connectelt-e minden konténer a ```bash docker network inspect telefonkonyv-net ``` paranccsal. Ezzel a következőket kell lássuk az inspect közepén: ```JSON { ... "Containers": { "...hash...": { "Name": "telefonkonyv-api", "EndpointID": "...hash...", "MacAddress": "fa:25:0e:90:af:90", "IPv4Address": "172.20.0.3/16", "IPv6Address": "" }, "...hash...": { "Name": "telefonkonyv-db", "EndpointID": "...hash..", "MacAddress": "66:4f:c8:20:5c:5a", "IPv4Address": "172.20.0.2/16", "IPv6Address": "" } }, ... } ```