Opérationnel avec de petits environnements de développement Docker.
La documentation complète est disponible sur https://vessel.shippingdocker.com.
Vessel n'est qu'un petit ensemble de fichiers qui configure un environnement de développement local basé sur Docker par projet. Il n’y a rien à installer globalement, à part Docker lui-même !
C'est tout ce qu'il y a à faire pour l'utiliser :
le compositeur a besoin d'un docker/navire d'expédition php artisan supplier:publish --provider="VesselVesselServiceProvider"# Exécutez ceci une fois pour initialiser le projet# Doit être exécuté avec "bash" jusqu'à l'initialisation du vaisseau bash ./démarrage du navire
Rendez-vous sur http://localhost
dans votre navigateur et consultez votre site Laravel !
Si vous utilisez Lumen, vous devrez copier les fichiers Vessel manuellement au lieu d'utiliser php artisan vendor:publish
. Vous pouvez le faire avec cette commande :
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
et vous pourrez ensuite installer et continuer normalement.
Vessel tente de se lier aux ports 80 et 3306 de votre ordinateur, vous pouvez donc simplement accéder à http://localhost
dans votre navigateur.
Cependant, si vous exécutez plusieurs instances de Vessel, vous obtiendrez une erreur lors de son démarrage ; Chaque port ne peut être utilisé qu'une seule fois. Pour contourner ce problème, utilisez un port différent par projet en définissant les variables d'environnement APP_PORT
et MYSQL_PORT
de l'une des deux manières suivantes :
Dans le fichier .env
:
APP_PORT=8080 MYSQL_PORT=33060
Ou lors du démarrage du navire :
APP_PORT=8080 MYSQL_PORT=33060 ./démarrage du navire
Ensuite, vous pouvez visualiser votre projet sur http://localhost:8080
et accéder à votre base de données localement depuis le port 33060
;
Puisque nous lions MySQL au port 3306
, SequelPro peut accéder directement à la base de données.
Le mot de passe de l'utilisateur root
est défini par la variable d'environnement DB_PASSWORD
à partir du fichier .env
.
Le paramètre de port doit correspondre à la variable d'environnement
MYSQL_PORT
, dont la valeur par défaut est3306
.
Voici une liste des assistants intégrés que vous pouvez utiliser. Toute commande non définie dans le script vessel
sera transmise par défaut à la commande docker-compose
. Si aucune commande n'est utilisée, elle exécutera docker-compose ps
pour répertorier les conteneurs en cours d'exécution pour cet environnement.
# affiche la version actuelle du navire$ navire --version # ou [ -v | version ]# affiche l'aide du navire$ navire --help # ou [ -H | aide ]
# Démarrez l'environnement./vessel start## Ceci équivaut à./vessel up -d# Arrêtez l'environnement./vessel stop## Ceci équivaut à./vessel down
# Utilisez composer./vessel composer <cmd>./vessel comp <cmd> # "comp" est un raccourci vers "composer"# Utilisez artisan./vessel artisan <cmd>./vessel art <cmd> # "art" est un raccourci vers "artisan"# Exécutez tinker REPL./vessel tinker # "tinker" est un raccourci pour "artisan tinker"# Exécutez les tests phpunit./vessel test## Exemple : vous pouvez tout réussir vous voudriez également phpunit pour cela./vessel test --filter=some.phpunit.filter ./vessel test tests/Unit/SpecificTest.php# Exécutez npm./vessel npm <cmd>## Exemple : install deps./vessel npm install# Exécutez fil./vessel Yarn <cmd>## Exemple : installez deps./ installation de fil de vaisseau # Exécuter gulp./vessel gulp <cmd>
Comme mentionné, tout ce qui n'est pas reconnu comme commande intégrée sera utilisé comme argument pour la commande docker-compose
. Voici quelques astuces pratiques :
# Les deux listeront les conteneurs en cours d'exécution et leur statut./navire ./vessel ps# Vérifier la sortie du journal d'un service de conteneur./vessel logs # tous les journaux de conteneur./vessel logs app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis logs## Suivez les journaux pour voir la sortie telle qu'elle est générée./vessel logs -f # all logs./vessel logs -f app # nginx | php logs## Tail Laravel Logs./vessel exec app tail -f /var/www/html/storage/logs/laravel.log# Démarrez un shell bash à l'intérieur d'un conteneur# C'est comme SSH dans un serveur# Notez que les modifications apportées à un conteneur de cette manière ne survivront **PAS**# à l'arrêt et au démarrage de l'environnement du navire.# Pour installer un logiciel ou modifier la configuration du serveur, vous devrez# modifier le fichier Docker et exécuter : ./vessel build./vessel exec app bash# Exemple : mysqldump la base de données "homestead" vers le système de fichiers local# Nous devons ajouter le mot de passe dans la ligne de commande de cette façon# Cela crée des fichiers "homestead.sql" sur votre système de fichiers local, pas# à l'intérieur de le conteneur # @link https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
Le but de ce projet est la simplicité. Il comprend :
PHP7.4
MySQL 5.7
Redis (dernier)
NodeJS (dernier), avec Yarn & Gulp
Si vous n'êtes pas familier avec Docker, essayez ce cours Docker en développement, qui explique les sujets importants sur la façon dont cela est mis en place.
Si vous souhaitez voir comment ce flux de travail a été développé, consultez Shipping Docker et inscrivez-vous au module de cours gratuit qui explique la création de ce flux de travail Docker.
Vessel nécessite Docker et ne fonctionne actuellement que sous Windows, Mac et Linux.
Windows nécessite l'exécution d'Hyper-V. L'utilisation de Git Bash (MINGW64) et WSL sont prises en charge. Native Windows est encore en développement.
Mac | Linux | Fenêtres |
---|---|---|
Installer Docker sur Mac | Installer Docker sur Debian | Installer Docker sous Windows |
Installer Docker sur Ubuntu | ||
Installer Docker sur CentOS |