Skip to content

Commit d631e75

Browse files
committed
first production release
1 parent e045b4d commit d631e75

File tree

4 files changed

+105
-80
lines changed

4 files changed

+105
-80
lines changed

.env

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
COMPOSE_CONVERT_WINDOWS_PATHS=1
2+
3+
# You may change the PostgreSQL port exposed on the host machine here:
4+
POSTGRES_EXPOSED_PORT=5432
5+
6+
# You may change the PGAdmin port exposed on the host machine here:
7+
PGADMIN_EXPOSED_PORT=5000

README.md

+89-45
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,109 @@
1-
# Postgres & pgadmin4 docker per Base Dati 2
1+
# PostgreSQL & PGAdmin4 come Docker container a scopi didattici
2+
23
## Introduzione
3-
Le seguenti istruzioni ti permetteranno di istanziare un Docker contenente il DBMS PostgreSQL e pgadmin4, una interfaccia grafica che consente di amministrare in modo semplificato database di PostgreSQL. Tramite cui è possibile eseguire query tramite il query editor.
4+
Le seguenti istruzioni permettono di istanziare due Docker container collegati tra loro contenenti:
5+
6+
* il DBMS [PostgreSQL](https://www.postgresql.org/)
7+
* [PGAdmin4](https://www.pgadmin.org/)
8+
9+
PGAdmin4 è una interfaccia web che consente di amministrare in modo semplificato un server PostgreSQL, scrivere ed eseguire query e file di comandi SQL utilizzando un qualunque browser web.
410

511
## Come iniziare
6-
Queste istruzioni permetteranno di installare Docker, e il container e di creare una shared folder fra l'host e il docker.
12+
Queste istruzioni permetteranno di installare Docker, i container e di creare una shared folder fra l'host e i container.
713

814
### Prerequisiti
9-
1. Una macchina con sistema operativo Linux o MacOS.
10-
2. Bisogna avere i permessi di ***root*** e avere disponibile la porta 5000 e 5432.
11-
3. Bisogna installare docker, puoi seguire le istruzioni in base al tuo sistema operativo per installarlo [docker.com](https://www.docker.com/)
12-
### Installazione tramite setup.sh
13-
5. Scaricare il pacchetto 'dockerBD2' dal [sito del corso](http://tmancini.di.uniroma1.it/index.php?page=teaching.bd2)
14-
6. eseguire il seguente comando:
15-
```sh
16-
$ sudo bash setup.sh
17-
```
18-
7. Eseguire l'accesso tramite il browser all'indirizzo localhost:5000
19-
8. Nella dashboard cliccare su 'Add new server'
20-
9. Nella tab 'General' nel campo Name scrivere 'postgres'
21-
10. Cambiare tab e scegliere 'Connection'
22-
11. Nel campo Host name / address' scrivere 'postgres'
23-
12. Nel campo port se non presente scrivere 5432
24-
13. Nel campo Maintenance database scrivere 'postgres'
25-
14. Nel campo password scrivere 'basedati2'
26-
27-
NB: tutti i campi sono da completare senza apici
15+
1. Una macchina con sistema operativo Linux o MacOS. Attualmente Windows non è supportato.
16+
2. Bisogna avere i permessi di ***root*** e avere disponibili le porte 5000 (PGAdmin4) e 5432 (PostgreSQL). (Le porte esposte dai container verso la macchina host possono essere modificate editando il file `.env`).
17+
3. [Docker](https://www.docker.com/), docker-compose e git installati. Per la loro installazione, si seguano le istruzioni in base al proprio sistema operativo.
2818

29-
## Esecuzione dei test
19+
### Installazione ed avviamento tramite docker-compose
20+
1. Aprire una shell
21+
2. Posizionarsi nella directory dove si vuole installare il tutto (ad es., `$HOME/bd2/`). Da qui in poi, chiameremo questa directory `$BASE_DIR`.
22+
23+
cd "$BASE_DIR"
24+
25+
3. Scaricare questo repository nella directory corrente. Per scoprire il comando da utilizzare:
26+
1. cliccare il pulsante "Clone" in alto in questa pagina;
27+
2. scegliere il metodo "https" dal menu, copiare il comando mostrato (`git clone https://...`);
28+
3. incollare il comando nella shell aperta.
29+
30+
4. Avviare il docker container:
3031

31-
Per controllare che tutto sia andato a buon fine, caricate nel browser la pagina localhost:5000.
32+
docker-compose up -d
33+
34+
Alla prima esecuzione, il comando scaricherà da Internet le ultime versioni di PostgreSQL e PGAdmin4 e avvierà i due server.
35+
36+
37+
### Configurazione PGAdmin4
38+
6. Eseguire l'accesso tramite il browser all'indirizzo <http://localhost:5000> (la propria installazione di PGAdmin4; ovviamente usare il numero di porta corretto se modificato nel file `.env`).
39+
In caso PGAdmin4 non dovesse rispondere, fare riferimento alla sezione "Esecuzione dei test".
40+
6. Effettuare il login usando le credenziali riportate nella sezione "Credenziali"
41+
7. Nella dashboard cliccare su 'Add new server'
42+
8. Nella tab 'General' nel campo Name scrivere 'postgres'
43+
9. Cambiare tab e scegliere 'Connection'
44+
10. Nel campo Host name / address scrivere: `postgres`
45+
11. Nel campo port se non presente scrivere: `5432`
46+
12. Nel campo Maintenance database scrivere: `postgres`
47+
13. Nel campo username scrivere `postgres`
48+
13. Nel campo password scrivere: `postgres`
49+
13. Spuntare la casella "Save password"
3250

3351
## Credenziali
34-
è possibile eseguire il comando help tramite il file sh per ottenere le credenziali d'accesso di default:
35-
```sh
36-
sudo bash setup.sh -h
37-
```
38-
#### Credenziali PGADMIN4:
39-
Per eseguire l'accesso a PGADMIN4 utilizzate le seguenti credenziali:
40-
41-
> password: admin
42-
> port: 5000
52+
I container sono già configurati con le seguenti credenziali.
53+
54+
#### Credenziali PGAdmin4:
55+
56+
57+
* password: `admin`
4358

4459
#### Credenziali PostgreSQL:
45-
Per eseguire tramite linea di comando utilizzate le seguenti credenziali:
4660

47-
> id: postgres
48-
> password: basedati2
49-
> port: 5432
61+
* user: `postgres`
62+
* password: `postgres`
63+
64+
65+
## Esecuzione dei test
66+
67+
Per controllare che tutto sia andato a buon fine:
5068

51-
## Condividiere file tra il Docker e il File System host
52-
Dopo l'installazione tramite il file setup.sh è possibile trasferire file tra host e docker tramite la cartella nel file system host situata nella locazione: $HOME/dockerFOLDER
69+
1. Assicurarsi che i container `pgadmin_container` e `postgres_container` siano attivi (nello stato "up") mediante il comando:
5370

54-
È possibile eseguire query o file sql tramite l'interfaccia grafica di pgadmin4 con l'utilizzo del suo query editor.
71+
docker container ls -a
72+
73+
1. Puntare il proprio browser alla URL <http://localhost:5000> (la propria installazione di PGAdmin4; ovviamente usare il numero di porta corretto se modificato nel file `.env`) ed assicurarsi che venga correttamente caricata la pagina di login di PGAdmin4.
5574

75+
1. Effettuare il login in PGAdmin4 e assicurarsi che vi sia il server di postgres sotto il menu Servers nella barra laterale sinistra. Se così non fosse, ricontrollare i passi nella sezione "Configurazione PGAdmin4".
76+
77+
## Condividere file tra il Docker e il File System host
78+
La sottodirectory `postgresData` di `$BASE_DIR` è visibile all'interno del container docker di PostgreSQL.
79+
Questa directory conterrà i file di configurazione e i database PostgreSQL, che resteranno dunque persistenti anche in caso di interruzione del servizio Docker, o della rimozione dei container.
5680

5781
## Utilizzare PostgreSQL da linea di comando:
58-
Eseguire il seguente comando per accedere alla shell del container.
59-
```sh
60-
$ sudo docker exec -it postgres_container bash
61-
$ psql -U postgres
62-
```
82+
E' possibile avviare il comando `psql` per accedere alla shell di PostgreSQL mediante:
83+
84+
docker exec -it postgres_container psql -U postgres
85+
86+
87+
## Altri utili comandi Docker
88+
89+
5. Per fermare l'esecuzione di PostgreSQL e di PGAdmin4 usare il comando:
90+
91+
docker-compose stop
92+
93+
5. Per avviare l'esecuzione di PostgreSQL e di PGAdmin4 usare il comando:
94+
95+
docker-compose start
96+
97+
5. Per reinstallare i docker container di PostgreSQL e di PGAdmin4 usare il comando:
98+
99+
docker-compose down
100+
docker-compose up -d
101+
102+
I dati (ad es., il contenuto dei propri database) resteranno salvati nella cartella $BASE_DIR.
103+
Ai successivi avvii, docker utilizzerà le immagini dei container PostgreSQL e di PGAdmin4 scaricate in precedenza.
104+
105+
Si rinvia alla documentazione di Docker per gli usi più avanzati.
106+
63107
## Authors
64108

65109
* **Andrea Bacciu** [Github profile](https://github.com/andreabac3)

docker-compose.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
version: '3.5'
1+
version: '3.0'
22

33
services:
44
postgres:
5-
container_name: postgres_container
5+
container_name: postgres_container
66
image: postgres:latest
77
environment:
88
POSTGRES_USER: ${POSTGRES_USER:-postgres}
9-
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-basedati2}
9+
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
1010
PGDATA: /data/postgres
1111
volumes:
12-
- $HOME/dockerFOLDER:/data/postgres
12+
- ./postgresData:/data/postgres # to choose your personal directory, change only the left path.
1313
ports:
14-
- "5432:5432"
14+
- "${POSTGRES_EXPOSED_PORT}:5432" # to choose your personal port, change only the left port.
1515
networks:
1616
- postgres
1717

@@ -21,18 +21,18 @@ services:
2121
container_name: pgadmin_container
2222
image: dpage/pgadmin4:latest
2323
environment:
24-
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-[email protected]}
24+
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-[email protected]}
2525
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
2626
volumes:
27-
- pgadmin:/root/.pgadmin
27+
- ./pgadminData:/var/lib/pgadmin # to choose your personal directory, change only the left path.
2828
ports:
29-
- "5000:80"
29+
- "${PGADMIN_EXPOSED_PORT}:80"
3030
networks:
3131
- postgres
3232
restart: unless-stopped
3333

3434
networks:
35-
postgres:
35+
postgres:
3636
driver: bridge
3737

3838
volumes:

setup.sh

-26
This file was deleted.

0 commit comments

Comments
 (0)