Este é um projeto que você pode usar em projetos existentes ou novos projetos.
Download o conteúdo deste repositório e adicione os arquivos à raiz do seu projeto Laravel. Descarte este arquivo README.md
para evitar sobrescrever o seu próprio arquivo ou um existente.
A Stack é configurada por padrão da seguinte forma:
Você pode usar PHP 7.4 and PHP 7.3 especificando a tag de versão em docker-compose.yml
onde o repox/laravel-dev-php
image é referenciado; i.e.:
repox/laravel-dev-php:7.3
repox/laravel-dev-php:7.4
repox/laravel-dev-php:8.0
repox/laravel-dev-php:latest # Fornece a versão mais recente do PHP
As imagens PHP usadas para este repositório são feitas especificamente para o desenvolvimento com o Laravel neste contexto.
Iniciar o ambiente é muito fácil.
$ docker-compose up -d
Isso terá um ambiente de trabalho disponível em http://localhost
Você já deve ter coisas em execução localmente na porta 80, o que pode gerar alguns erros. Nesse caso, pode ser benéfico alterar a porta exposta para algo como 8080
ou 8000
. Eu escolhi 80 'para minha própria conveniência. Expor o serviço
nginx na porta
8000, em vez disso, significaria que você configurou o
docker-compose.yml e alterou a configuração da
port` para algo como o seguinte:
nginx:
image: nginx
ports:
- "8080:80"
O lado esquerdo da especificação da porta é a porta do host Docker que mapeia para a porta do contêiner especificada no lado direito.
Os nomes de host para MySQL (e outros serviços adicionados) são acessados por meio do nome do serviço.
O contêiner do MySQL foi rotulado como db
em docker-compose.yml
e, portanto, o parâmetro DB_HOST
em seu arquivo .env
no Laravel deve refletir isso como o nome do host:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Para interromper o ambiente, mas mantendo os dados de volume, execute o seguinte:
$ docker-compose stop
Para interromper o ambiente e remover dados de volume e rede de contêineres (por exemplo, para reiniciar):
$ docker-compose down -v
Foram adicionados alguns contêineres que podem interagir diretamente com o ambiente para utilizar o Composer e o Artisan na rede docker.
Exemplos:
$ docker-compose run artisan migrate:refresh
$ docker-compose run artisan queue:work --once
$ docker-compose run composer require laravel/sanctum
$ docker-compose run composer dump
Este repositório contém uma configuração feita especificamente para permitir que você acesse-o com seu cliente favorito diretamente de seu host, conectando-se à porta exposta via 127.0.0.1
. Como um exemplo:
$ mysql -h 127.0.0.1 -p 3306 -u root -proot
O mesmo procedimento pode ser usado em ie. DbWeaver, Sequel Ace, MySQL Workbench, HeidiSQL ou qualquer ferramenta que você preferir.