Catégories
Laravel

Laravel 8 + sail + conflit avec les ports

Laravel

Ayant – enfin – décidé de basculer sur la version 8.0 de Laravel, je me suis donc intéressé à sail (utilitaire permettant de construire et monté des containers docker « ready to use » pour Laravel). Comme j’utilisais auparavant Laradock pour avoir mon environnement de dev, je me suis donc dit que j’allais faire d’une pierre deux coups : passer à Laravel 8 et tester sail. Mais ça, c’était avant le drame …

En effet, en suivant la doc dédiée à sail, tout se déroule à merveille jusqu’à la commande « sail up » (qui permet de lancer les containers docker et d’avoir un environnement « ready to use »). Le container mailhog ne peut pas se lancer car le port 1025 est déjà utilisé :/ Un petit netstat et je m’aperçois que le client synology cloud-backup tourne déjà sur ce port.

Bon, retour sur la doc de Laravel, et après une courte recherche, je vois que le dernier paragraphe s’intitule « Customization » : très intéressant. Et là miracle, une commande sail permet de générer la conf docker !!
Du coup, voici les commandes à lancer dans l’ordre :

  • Arrêter le client synology cloud-backup
  • Lancer l’environnement docker à l’aide de la commande « sail up »
  • Publier la conf docker (afin de pouvoir la modifier et re-build les images) à l’aide de la commande « sail artisan sail:publish »
  • Arrêter les containers : « sail down »
  • Modifier le port de mailhog dans le docker-compose.yml. On remplace
ports:
            - '${FORWARD_MAILHOG_PORT:-1025}:1025'

par

ports:
            - '${FORWARD_MAILHOG_PORT:-1125}:1025'
  • On re-build les images : « sail build –no-cache »
  • Relancer les containers : « sail up » (Miracle, ça fonctionne 🙂 )
  • Ne pas oublier de modifier le port de mailhog dans votre .env (on remplace 1025 par 1125)

Et voilà, tout est fonctionnel !! Vous pourrez de cette manière modifier comme vous le souhaitez les ports des différents containers docker si certains des ports par défaut vous posent des soucis.

Pour aller plus loin, un tout petit aparté sur sail, qui est vraiment bien foutu pour exécuter toutes les commandes utiles que vous exécutiez auparavant via « docker-compose exec … »

Pour faire court, voici les commandes sail indispensables pour laravel (à utiliser avec les paramètres qui vont bien , comme par exemple « sail artisan migrate » ou « sail npm run dev ») :

  • sail artisan
  • sail npm
  • sail composer

Pour terminer, un dernier petit tip pour ceux qui débutent avec docker, vous pouvez bien entendu lancer les containers en daemon en ajoutant « -d » à la commande up.

sail up -d

Il ne faudra pas oublier de faire un sail down pour arrêter tout ce beau monde.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.