Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retour : Utilisation de docker pour test local #918

Open
PhilippeAccorsi opened this issue Oct 27, 2024 · 2 comments
Open

Retour : Utilisation de docker pour test local #918

PhilippeAccorsi opened this issue Oct 27, 2024 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@PhilippeAccorsi
Copy link

PhilippeAccorsi commented Oct 27, 2024

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) :

  • Dans le cas de l'utilisation avec le fichier docker-compose.yml et la documentation associé, il manque l'info de réglage du type de bdd dans le mercator.env. Il faut, comme expliqué ici mettre dans le mercator.env la ligne DB_CONNECTION=sqlite (dé-commenter l'existante mais avec la valeur sqlite). Si c'est pas fait on à l'erreur suivante :
   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] Connection refused (Connection: mysql, SQL: select exists (select 1 from information_schema.tables where table_schema = 'forge' and table_name = 'migrations' and table_type in ('BASE TABLE', 'SYSTEM VERSIONED')) as `exists`)

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:825
    821▕                     $this->getName(), $query, $this->prepareBindings($bindings), $e
    822▕                 );
    823▕             }
    824▕ 
  ➜ 825▕             throw new QueryException(
    826▕                 $this->getName(), $query, $this->prepareBindings($bindings), $e
    827▕             );
    828▕         }
    829▕     }

      +41 vendor frames 

  42  artisan:35
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
  • 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, 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
Copy link
Author

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 dbarzin self-assigned this Oct 27, 2024
@dbarzin
Copy link
Owner

dbarzin commented Oct 27, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants