4.2 KiB
4.2 KiB
Configuration PostgreSQL
Fichiers de configuration
postgres/docker-compose.yml: Configuration Docker Composepostgres/docker-compose.env.yml: Version avec fichier .env (optionnelle)
Configuration actuelle
docker-compose.yml
services:
gitea_db:
container_name: gitea_db
image: postgres:14
restart: always
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: Gitea_Db-2025_Secure
POSTGRES_DB: gitea
volumes:
- gitgit_syoul_fr_db_data:/var/lib/postgresql/data
networks:
- gitgit_syoul_fr_gitea_net
volumes:
gitgit_syoul_fr_db_data:
external: true
networks:
gitgit_syoul_fr_gitea_net:
external: true
Variables d'environnement
| Variable | Valeur | Description |
|---|---|---|
POSTGRES_USER |
gitea | Utilisateur de la base de donnees |
POSTGRES_PASSWORD |
*** | Mot de passe |
POSTGRES_DB |
gitea | Nom de la base de donnees |
Volume persistant
Le volume gitgit_syoul_fr_db_data contient toutes les donnees PostgreSQL :
- Tables de la base de donnees
- Configuration PostgreSQL
- WAL (Write-Ahead Logging)
IMPORTANT : Ce volume est critique et doit etre sauvegarde regulierement.
Sauvegardes
Sauvegarde logique (pg_dump)
# Sauvegarde complete
docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarde compressee
docker exec gitea_db pg_dump -U gitea gitea | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Restauration
# Restaurer depuis une sauvegarde
cat backup.sql | docker exec -i gitea_db psql -U gitea gitea
# Ou pour un fichier compresse
gunzip -c backup.sql.gz | docker exec -i gitea_db psql -U gitea gitea
Sauvegarde du volume Docker
# Arreter le conteneur avant la sauvegarde
docker stop gitea_db
# Sauvegarder le volume
docker run --rm \
-v gitgit_syoul_fr_db_data:/data \
-v $(pwd):/backup \
alpine tar cvzf /backup/postgres_volume_$(date +%Y%m%d).tar.gz /data
# Redemarrer le conteneur
docker start gitea_db
Maintenance
Verifier l'etat
docker exec gitea_db pg_isready -U gitea
Se connecter a la base
docker exec -it gitea_db psql -U gitea gitea
Lister les tables
\dt
Taille de la base
docker exec gitea_db psql -U gitea gitea -c "SELECT pg_size_pretty(pg_database_size('gitea'));"
Vacuum (maintenance)
docker exec gitea_db vacuumdb -U gitea gitea
Mise a jour
Mise a jour mineure (14.x -> 14.y)
cd /opt/postgres
docker compose pull
docker compose up -d
Mise a jour majeure (14 -> 15)
ATTENTION : Necessite une migration manuelle des donnees.
-
Sauvegarder la base :
docker exec gitea_db pg_dump -U gitea gitea > backup_before_upgrade.sql -
Arreter le conteneur :
docker compose down -
Modifier la version dans docker-compose.yml :
image: postgres:15 -
Supprimer l'ancien volume (ATTENTION !) :
# Uniquement si vous avez une sauvegarde ! docker volume rm gitgit_syoul_fr_db_data docker volume create gitgit_syoul_fr_db_data -
Demarrer le nouveau conteneur :
docker compose up -d -
Restaurer la base :
cat backup_before_upgrade.sql | docker exec -i gitea_db psql -U gitea gitea
Depannage
Connexion refusee
# Verifier que le conteneur tourne
docker ps | grep gitea_db
# Verifier les logs
docker logs gitea_db
# Verifier le reseau
docker network inspect gitgit_syoul_fr_gitea_net | grep gitea_db
Base corrompue
En cas de corruption, restaurer depuis une sauvegarde :
# Arreter Gitea
docker stop gitea
# Supprimer et recreer la base
docker exec gitea_db psql -U gitea postgres -c "DROP DATABASE gitea;"
docker exec gitea_db psql -U gitea postgres -c "CREATE DATABASE gitea;"
# Restaurer
cat backup.sql | docker exec -i gitea_db psql -U gitea gitea
# Redemarrer Gitea
docker start gitea
Performances
Optimiser les performances en ajoutant des variables d'environnement :
environment:
POSTGRES_INITDB_ARGS: "--encoding=UTF8"
# Ou monter un fichier de configuration personnalise