Docker
La principale idée c'est d'utiliser les multi-stage build de Docker pour ne pas avoir à compiler le front à la main sans pour autant augmenter la taille de l'image finale.
On part d'une image node, on pull le front, on le compile, puis on part d'une image Python (la finale), on pull le back, on copie les fichiers compilés depuis le front, et c'est parti.
J'ai aussi ajouté un fichier de secrets "exemple" pour éviter de se retrouver à modifier directement le docker-compose pour mettre les identifiants de la BDD "en clair", surtout si on versionne les fichiers.
Aussi on utilise les volumes Docker pour palier aux soucis des bind mounts et on ne met pas le front en lui même dans un volume (ça pourrait faire des conflits lors de la mise à jour de l'image).
Par contre pour que ça fonctionne il faut que les dépôts soient publics, si ça te va ;)