En funcionamiento con pequeños entornos de desarrollo Docker.
La documentación completa se puede encontrar en https://vessel.shippingdocker.com.
Vessel es solo un pequeño conjunto de archivos que configura un entorno de desarrollo local basado en Docker por proyecto. ¡No hay nada que instalar globalmente, excepto el propio Docker!
Esto es todo lo que hay que hacer para usarlo:
El compositor requiere un estibador/buque de envío. proveedor artesanal de php: publicar --provider="VesselVesselServiceProvider"# Ejecute esto una vez para inicializar el proyecto# Debe ejecutarse con "bash" hasta que se inicialice el inicio del recipiente bash ./arranque del barco
¡Dirígete a http://localhost
en tu navegador y ve tu sitio Laravel!
Si está utilizando Lumen, deberá copiar los archivos de Vessel manualmente en lugar de usar php artisan vendor:publish
. Puedes hacer esto con este comando:
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
y luego podrás instalarlo y continuar normalmente.
Vessel intenta conectarse a los puertos 80 y 3306 de su máquina, por lo que simplemente puede ir a http://localhost
en su navegador.
Sin embargo, si ejecuta más de una instancia de Vessel, obtendrá un error al iniciarlo; Cada puerto sólo se puede utilizar una vez. Para solucionar esto, utilice un puerto diferente por proyecto configurando las variables de entorno APP_PORT
y MYSQL_PORT
de una de dos maneras:
Dentro del archivo .env
:
APP_PORT=8080 MYSQL_PORT=33060
O al iniciar Vessel:
APP_PORT=8080 MYSQL_PORT=33060 ./arranque del barco
Luego puede ver su proyecto en http://localhost:8080
y acceder a su base de datos localmente desde el puerto 33060
;
Dado que vinculamos MySQL al puerto 3306
, SequelPro puede acceder a la base de datos directamente.
La contraseña para el usuario root
se establece mediante la variable de entorno DB_PASSWORD
desde el archivo .env
.
La configuración del puerto debe coincidir con la variable de entorno
MYSQL_PORT
, cuyo valor predeterminado es3306
.
Aquí hay una lista de ayudas integradas que puede utilizar. Cualquier comando no definido en el script vessel
se pasará de forma predeterminada al comando docker-compose
. Si no se utiliza el comando, ejecutará docker-compose ps
para enumerar los contenedores en ejecución para este entorno.
# muestra la versión actual del buque$ buque --version # o [ -v | versión ]# muestra la ayuda del barco$ barco --help # o [ -H | ayuda ]
# Iniciar el entorno./vessel start## Esto es equivalente a./vessel up -d# Detener el entorno./vessel stop## Esto es equivalente a./vessel down
# Usar compositor./vessel compositor <cmd>./vessel comp <cmd> # "comp" es un acceso directo a "composer"# Usar artisan./vessel artisan <cmd>./vessel art <cmd> # "art" es un atajo para "artesano"# Ejecute tinker REPL./vessel tinker # "tinker" es un atajo para "artesano tinker"# Ejecute phpunit tests./vessel test## Ejemplo: puede aprobar cualquier cosa que desee phpunit a esto también./vessel test --filter=some.phpunit.filter ./vessel test tests/Unit/SpecificTest.php# Ejecutar npm./vessel npm <cmd>## Ejemplo: instalar deps./vessel npm install# Ejecutar hilo./vessel hilo <cmd>## Ejemplo: instalar deps./ instalación de hilo de recipiente # Ejecutar gulp./vessel gulp <cmd>
Como se mencionó, cualquier cosa que no se reconozca como un comando integrado se usará como argumento para el comando docker-compose
. A continuación se ofrecen algunos trucos útiles:
# Ambos enumerarán los contenedores actualmente en ejecución y su estado./vessel ./vessel ps# Verificar la salida del registro de un servicio de contenedor./vessel logs # todos los registros del contenedor./vessel logs app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis logs## Sigue los registros para ver el resultado a medida que se genera./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# Iniciar un shell bash dentro de un contenedor# Esto es como SSH en un servidor# Tenga en cuenta que los cambios en un contenedor realizados de esta manera **NO**# sobrevivirán al detener e iniciar el entorno del recipiente# Para instalar el software o cambiar la configuración del servidor, deberá# editar el Dockerfile y ejecutar: ./vessel build./vessel exec app bash# Ejemplo: base de datos mysqldump "homestead" al sistema de archivos local# Debemos agregar la contraseña en la línea de comando de esta manera# Esto crea archivos "homestead.sql" en su sistema de archivos local, no# dentro de el contenedor# @link https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
El objetivo de este proyecto es la simplicidad. Incluye:
PHP 7.4
MySQL 5.7
Redis (más reciente)
NodeJS (más reciente), con Yarn & Gulp
Si no está familiarizado con Docker, pruebe este curso de Docker en desarrollo, que explica temas importantes sobre cómo se organiza.
Si desea ver cómo se desarrolló este flujo de trabajo, consulte Shipping Docker e inscríbase en el módulo del curso gratuito que explica la creación de este flujo de trabajo de Docker.
Vessel requiere Docker y actualmente solo funciona en Windows, Mac y Linux.
Windows requiere ejecutar Hyper-V. Se admite el uso de Git Bash (MINGW64) y WSL. Windows nativo aún está en desarrollo.
Impermeable | linux | ventanas |
---|---|---|
Instalar Docker en Mac | Instalar Docker en Debian | Instalar Docker en Windows |
Instalar Docker en Ubuntu | ||
Instalar Docker en CentOS |