Em funcionamento com pequenos ambientes de desenvolvimento Docker.
A documentação completa pode ser encontrada em https://vessel.shippingdocker.com.
Vessel é apenas um pequeno conjunto de arquivos que configura um ambiente de desenvolvimento local baseado em Docker por projeto. Não há nada para instalar globalmente, exceto o próprio Docker!
Isso é tudo que há para usá-lo:
compositor requer docker/navio de remessa php artesão fornecedor:publish --provider="VesselVesselServiceProvider"# Execute isto uma vez para inicializar o projeto# Deve ser executado com "bash" até inicializarbash ship init ./início do navio
Acesse http://localhost
no seu navegador e veja seu site Laravel!
Se estiver usando o Lumen, você precisará copiar os arquivos do Vessel manualmente em vez de usar php artisan vendor:publish
. Você pode fazer isso com este comando:
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
e então você poderá instalar e continuar normalmente.
O Vessel tenta se conectar às portas 80 e 3306 em sua máquina, então você pode simplesmente acessar http://localhost
em seu navegador.
No entanto, se você executar mais de uma instância do Vessel, receberá um erro ao iniciá-lo; Cada porta só pode ser usada uma vez. Para contornar isso, use uma porta diferente por projeto, definindo as variáveis de ambiente APP_PORT
e MYSQL_PORT
de uma das duas maneiras:
Dentro do arquivo .env
:
APP_PORT=8080 MYSQL_PORT=33060
Ou ao iniciar o Vessel:
APP_PORT=8080 MYSQL_PORT=33060 ./vessel start
Então você pode visualizar seu projeto em http://localhost:8080
e acessar seu banco de dados localmente pela porta 33060
;
Como vinculamos o MySQL à porta 3306
, o SequelPro pode acessar o banco de dados diretamente.
A senha do usuário root
é definida pela variável de ambiente DB_PASSWORD
no arquivo .env
.
A configuração da porta deve corresponder à variável de ambiente
MYSQL_PORT
, cujo padrão é3306
.
Aqui está uma lista de ajudantes integrados que você pode usar. Qualquer comando não definido no script vessel
será passado por padrão para o comando docker-compose
. Se o comando not for usado, ele executará docker-compose ps
para listar os contêineres em execução neste ambiente.
# mostra a versão atual da embarcação$ embarcação --versão # ou [ -v | versão ]# mostra ajuda da embarcação$ embarcação --help # ou [ -H | ajuda ]
# Inicia o ambiente./vessel start## Isso é equivalente a./vessel up -d# Para o ambiente./vessel stop## Isso é equivalente a./vessel down
# Use o compositor./vessel compositor <cmd>./vessel comp <cmd> # "comp" é um atalho para "composer"# Use o artesão./vessel artesão <cmd>./vessel art <cmd> # "art" é um atalho para "artisan"# Execute tinker REPL./vessel tinker # "tinker" é um atalho para "artisan tinker"# Execute phpunit testes./vessel test## Exemplo: Você pode passar em qualquer coisa que desejar gostaria de phpunit para isso também./vessel test --filter=some.phpunit.filter ./vessel test tests/Unit/SpecificTest.php# Execute npm./vessel npm <cmd>## Exemplo: install deps./vessel npm install# Execute yarn./vessel yarn <cmd>## Exemplo: install deps./ instalação de fio de navio # Execute gulp./vessel gulp <cmd>
Conforme mencionado, qualquer coisa não reconhecida como um comando integrado será usada como argumento para o comando docker-compose
. Aqui estão alguns truques úteis:
# Ambos listarão os contêineres atualmente em execução e seus status./vessel ./vessel ps# Verifique a saída de log de um serviço de contêiner./vessel logs # todos os logs de contêiner./vessel logs app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis logs## Siga os logs para ver a saída conforme ela é gerada./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 um shell bash dentro de um contêiner# Isso é como fazer SSH em um servidor# Observe que as alterações em um contêiner feitas dessa maneira **NÃO**# sobreviverão ao parar e iniciar o ambiente da embarcação# Para instalar o software ou alterar a configuração do servidor, você precisará# editar o Dockerfile e executar: ./vessel build./vessel exec app bash# Exemplo: banco de dados mysqldump "homestead" para o sistema de arquivos local# Devemos adicionar a senha na linha de comando desta forma# Isso cria arquivos "homestead.sql" em seu sistema de arquivos local, não# dentro de o contêiner# @link https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
O objetivo deste projeto é a simplicidade. Inclui:
PHP 7.4
MySQL 5.7
Redis (mais recente)
NodeJS (mais recente), com Yarn & Gulp
Se você não estiver familiarizado com o Docker, experimente este curso Docker em Desenvolvimento, que explica tópicos importantes sobre como ele é montado.
Se você quiser ver como esse fluxo de trabalho foi desenvolvido, confira Shipping Docker e inscreva-se no módulo do curso gratuito que explica a construção desse fluxo de trabalho do Docker.
O Vessel requer Docker e atualmente só funciona em Windows, Mac e Linux.
O Windows requer a execução do Hyper-V. O uso de Git Bash (MINGW64) e WSL é suportado. O Windows nativo ainda está em desenvolvimento.
Mac | Linux | Windows |
---|---|---|
Instale o Docker no Mac | Instale o Docker no Debian | Instale o Docker no Windows |
Instale o Docker no Ubuntu | ||
Instale o Docker no CentOS |