<aside> ⛔ NE JAMAIS PUSH LES DOSSIER DATA ET PGADMIN !!!!!!!!!!!!!!!!!!!!!!!!
Avant chaque commit faire :
git restore data
git restore pgadmin
</aside>
On possède 4 services :
DB qui contient notre base données postgresSQL avec les identifiants du user et le nom de la base.
Front où est stocké notre client en react/nextJS
pgadmin, l’outil nous permettant de voir notre DB et d’y effectuer des modifications etc..
le user associé est celui dans environment.
Back qui contient notre api en expressJS
Les volumes servent à activer l’hot reload, cela permet que chaque modifications soient directement prises en compte et relance le docker.
C’est intéressant de lancer le docker si vous souhaitez utiliser plusieurs services par exemple lors de la création d’endpoint dans l’API ou pour des fetch entre l’api et le front.
Cependant si vous souhaitez seulement bosser par exemple sur le front vous pouvez simplement faire un npm run dev dans le dossier client.
Afin de lancer le docker il y a plusieurs étapes à suivre, tout d’abord se placer dans les dossier client et back puis faire des npm i, afin d’installer les dépendances.
Puis faire un docker-compose up —build à la racine.
Vous pouvez aussi docker-compose up “nom des services séparé par des espaces” (exemple : docker compose up db back)
Ensuite plusieurs problèmes peuvent arriver du a des soucis de permissions de fichiers ou a des configs docker ou parfois je n’ai pas l’explication je suis pas un nerd devOPS, voici la liste :
La DB ne fait que de restart et vous avez l’erreur “PostgreSQL Database directory appears to contain a database; Skipping initialization
"
Cela est du à la suppression automatique de ce fichier, je n’ai pas l’explication de pourquoi il est supprimé.
Il faut donc gitrestore ce fichier puis relancer le docker de la DB, attention le fichier peut parfois être supprimé sous délai de 10-15 par votre IDE (je ne sais pas pourquoi)
Le PGadmin ne se lance et vous avez cette erreur : PermissionError: [Errno 13] Permission denied: '/var/lib/pgadmin/sessions'
Encore une fois je n’ai pas l’explication mais la solution est de supprimer le dossier PGadmin, puis d’en faire un nouveau vide, à l’initialisation il sera rempli.
L’hotreload ne fonctionne pas sur le back, dans ce cas il faut lancer tous les services docker sauf le back.
Puis lancer le back en local via npm start et changer la conf de la connexion vers la DB
Il y a une conf via docker et une via local, il faut commenter selon votre besoin.
Configurer le PG ADMIN :
Si vous le reprenez a 0 il faut register un nouveau serveur et rentrer les infos de la DB
puis click droit sur tables et query tool et mettre le script de construction de la DB (voir disc)