Files
DB/README.md
Zombori Péter 1fe6e7e620 network fix
2025-10-08 21:02:12 +02:00

137 lines
3.7 KiB
Markdown

# 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": ""
}
},
...
}
```