dbarzin / mercator

Mapping the information system / Cartographie du système d'information
GNU General Public License v3.0
267 stars 43 forks source link

Retour : Utilisation de docker pour test local #918

Open PhilippeAccorsi opened 2 days ago

PhilippeAccorsi commented 2 days ago

Déjà, super boulot 👏 👏 La version de demo présente de belle chose 😎 (je me projette pas mal et j'ai hâte de découvrir l'outil)

Quelques petits retours (je sais pas si vous préférez avoir des PR directement ou une issue ici) :


- Le readme du dossier `docker-compose/` pourrait s'appeler `README.md` pour être affiché directement dans le dossier (c'est plus clair de mon point de vue)
- Dans le `docker-compose.md` le prérequis est pas bien clair car il y a ensuite l'étape `Put your mercator's https certificates in the nginx PV folder`. Je pense que cette étape pourrait être dans la partie "prérequis". Si l'on fait un certificat auto-signé, on ne comprends pas bien ensuite pourquoi il y a l'étape de copie du certificat et il faut relire pour être sur que les dossiers sont bien les bons 🤓
- Je ne comprend pas bien le `If you need your company's ca root certificate in Nginx because you want to also reverse proxy another https site`.  On parle ici d'un cas où l'on voudrait avoir un proxy frontal qui s'occupe du ssl, ou c'est un autre cas d'usage ?
- Est-il possible d'utiliser mercatore en production (avec docker) et avec seulement le proxy frontal qui s'occuperais du ssl ? Sur certain de mes serveurs, j'aime bien n'avoir à gérer le ssl qu'a un seul endroit (différente app avec docker), puis connexion en http entre le frontal et l'app (c'est sur le même serveur physique).
- Pour `Modify the configuration to match your domain name` : je pense qu'il pourrait être intéressant d'avoir le nom (dans la doc) que l'on doit chercher dans les fichiers, pour ne rien oublier. Un nommage du style `YOUR_DOMAIN_NAME`. (un petit sed et le tour est joué ^^ ).
  - On pourrait même proposer la commande qui va bien pour faire le remplacement dans tous les fichiers en 1 fois 🤓
- Dans le `docker-compose.md` : Depuis quelque temps (1 ou 2ans), la commande docker à utiliser est `docker compose` et non plus `docker-compose` qui utilisait un script python. Peut-être garder les 2 (si nécessaire) avec une info sur la version docker à laquelle s'applique la commande. Sur une installation récente de docker, la commande `docker-compose` ne fonctionne plus.
  - Dans le même type d'idée, `version: '3.7'` (dans le docker-compose.yml) est deprecated dans les version récente de docker, et l'enlever permet d'éviter l'affichage d'un warning au démarrage (rien de grave cela dit).
- J'ai eu besoin de faire la commande `php artisan migrate --seed` depuis le container pour que je puisse m'authentifier la première fois (je me suis connecté dans le container avec la commande `docker exec -it mercator /bin/bash`). Si j'ai bien compris [ici](https://github.com/dbarzin/mercator/issues/863#issuecomment-2379820029), cette commande est obligatoire au premier démarrage.

Voili voilu. J'espère que les retours pourront être utile.
Je vais aller jouer avec la bête maintenant 🥳
PhilippeAccorsi commented 2 days ago

Questions supplémentaire :

Pour la création de la db et des users : ne serait-il finalement pas plus simple de gérer le cas directement au démarrage du container avec la création du sqlite si DB_CONNECTION=sqlite et dans tout les cas, au premier démarrage, appliquer la commande php artisan migrate --seed ?

Je sais que sur pas mal d'outil que j'ai essayé, pour éviter tout risque, après la première initialisation, un fichier est créé dans le volume, et si le fichier est présent, alors la commande d'init n'est pas effectué. Ça simplifierait les étapes pour le démarrage je pense.

Pour le jeux de données, ne serait-il pas plus "simple" de ne le proposer qu'en version sqlite ? (avec le fichier à copier directement dans le volume).

Encore merci pour le travail réalisé et mis à disposition de la communauté.

dbarzin commented 2 days ago

Merci Philippe pour ces retours. La partie Docker est un ensemble de contributions de la communauté. Tu peux proposer un PR pour améliorer cette partie du projet. Pour la base de données SQLite, il y a un groupe de "seeders" dans le répertoire database/seeders qui permet de peupler la base de données initiale, je ne sais pas si c'est la meilleure ou la plus simple manière de faire.