Compare commits
7 Commits
86f7d64f1b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a23afa721c | |||
| 66fa81b7c5 | |||
|
|
1fe6e7e620 | ||
|
|
42e3d94c65 | ||
|
|
47cec4b5da | ||
|
|
eab1e413c5 | ||
|
|
74b11ffc35 |
4
.env
Normal file
4
.env
Normal file
@@ -0,0 +1,4 @@
|
||||
MARIADB_ROOT_PASSWORD=rootpw
|
||||
MARIADB_DATABASE=telefonkonyv
|
||||
MARIADB_USER=appuser
|
||||
MARIADB_PASSWORD=apppass
|
||||
15
.gitignore
vendored
15
.gitignore
vendored
@@ -1,14 +1 @@
|
||||
# ---> VirtualEnv
|
||||
# Virtualenv
|
||||
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
|
||||
.Python
|
||||
[Bb]in
|
||||
[Ii]nclude
|
||||
[Ll]ib
|
||||
[Ll]ib64
|
||||
[Ll]ocal
|
||||
[Ss]cripts
|
||||
pyvenv.cfg
|
||||
.venv
|
||||
pip-selfcheck.json
|
||||
|
||||
db_data
|
||||
|
||||
138
README.md
138
README.md
@@ -1,3 +1,137 @@
|
||||
# DB
|
||||
# Adatbázis
|
||||
|
||||
Az adatbázis konfiguráció, ami tárolja a webalkalmazás adatait
|
||||
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": ""
|
||||
}
|
||||
},
|
||||
...
|
||||
}
|
||||
```
|
||||
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
container_name: telefonkonyv-db
|
||||
restart: always
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
||||
MARIADB_DATABASE: ${MARIADB_DATABASE}
|
||||
MARIADB_USER: ${appuser}
|
||||
MARIADB_PASSWORD: ${apppass}
|
||||
ports:
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- ./db_data:/var/lib/mysql
|
||||
- ./init:/docker-entrypoint-initdb.d
|
||||
networks:
|
||||
- telefonkonyv-net
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
networks:
|
||||
telefonkonyv-net:
|
||||
name: telefonkonyv-net
|
||||
15
init/01_init.sql
Normal file
15
init/01_init.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
uname VARCHAR(255) NOT NULL,
|
||||
pw VARCHAR(255) NOT NULL,
|
||||
admin BOOLEAN DEFAULT FALSE,
|
||||
note TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS contacts (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
phone VARCHAR(50) NOT NULL,
|
||||
address VARCHAR(255),
|
||||
note TEXT
|
||||
);
|
||||
30
k8s/mariadb-deployment.yaml
Normal file
30
k8s/mariadb-deployment.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: telefonkonyv-db
|
||||
namespace: szakdolgozat
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: telefonkonyv-db
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: telefonkonyv-db
|
||||
spec:
|
||||
containers:
|
||||
- name: mariadb
|
||||
image: mariadb:11
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
env:
|
||||
- name: MARIADB_ROOT_PASSWORD
|
||||
value: "rootpw"
|
||||
- name: MARIADB_DATABASE
|
||||
value: "telefonkonyv"
|
||||
- name: MARIADB_USER
|
||||
value: "appuser"
|
||||
- name: MARIADB_PASSWORD
|
||||
value: "apppass"
|
||||
13
k8s/mariadb-service.yaml
Normal file
13
k8s/mariadb-service.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: telefonkonyv-db
|
||||
namespace: szakdolgozat
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: telefonkonyv-db
|
||||
ports:
|
||||
- port: 3306
|
||||
targetPort: 3306
|
||||
nodePort: 31306
|
||||
Reference in New Issue
Block a user