Configurando o Docker para rodar o Laravel, MySQL e PHPMyAdmin de forma rápida e fácil.
Configurando o Docker para rodar o Laravel, MySQL e PHPMyAdmin de forma rápida e fácil.
|
|
|
Criando ambiente Docker para Laravel + MySQL e PHPMyAdmin |
LinuxMacOSWindows.
A configuração de pastas ficará da seguinte forma (sem o laravel instalado):
/laravel-blog
-/php-make
-- upload.ini
- docker-compose.yml
- up.sh
- down.shVamos criar o docker-compose.yml.
version: '3.5'
services:
db:
image: mysql:latest
#restart: always
environment:
MYSQL_DATABASE: 'laravel_db'
MYSQL_USER: 'laravel_user'
MYSQL_PASSWORD: 'Laravel'
MYSQL_ROOT_PASSWORD: 'Laravel'
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- ./my-db:/var/lib/mysql
app:
image: phpmyadmin/phpmyadmin:latest
links:
- db
ports:
- 13306:80
environment:
- PMA_ARBITRARY=1
volumes:
- ./php-make/upload.ini:/usr/local/etc/php/php.ini
volumes:
my-db:
Explicando um pouco da configuração acima.
Temos um serviço chamado: db, nele temos a imagem do MySQL, com as variáveis de ambiente como nome do banco, usuário, password e password root.
db:
image: mysql:latest
#restart: always
environment:
MYSQL_DATABASE: 'laravel_db'
MYSQL_USER: 'laravel_user'
MYSQL_PASSWORD: 'Laravel'
MYSQL_ROOT_PASSWORD: 'Laravel'
ports:
- '3306:3306'
expose:
- '3306'
volumes:
- ./my-db:/var/lib/mysqlO MySQL está exposto na porta 3306 externamente e internamente (dentro do container), você poderá usar um Gerenciador de Banco de Dados para administrar o banco, caso não queira utilizar o PHPMyAdmin.
Na parte de Volumes do Serviço db, temos uma pasta local chamada: my-db onde esta, /var/lib/mysql dentro do container.
No Serviço app, temos a imagem do PHPMyAdmin, que depende do serviço db. Esse serviço estará exposto na porta 13306 e associado a porta 80 do container.
app:
image: phpmyadmin/phpmyadmin:latest
links:
- db
ports:
- 13306:80
environment:
- PMA_ARBITRARY=1
volumes:
- ./php-make/upload.ini:/usr/local/etc/php/php.iniEste serviço conta com uma única variável de ambiente e adicionei também um volume para alterar a configuração do tamanho de upload de arquivos, para caso necessite fazer upload de arquivos grandes pelo PHPMyAdmin.
E por fim temos o Volume, que nada mais é o nome do volume: my-db:
O arquivo upload.ini contém a seguinte configuração.
file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600up.sh
Este arquivo será responsável por derrubar todos os containers do Docker ativos e iniciar o php artisan serve.
docker stop $(docker ps -a -q) && docker-compose down && docker-compose up -d && docker ps && php artisan servedown.sh
Este arquivo é responsável por derruba a aplicação Docker.
docker-compose downRode o comando chmod +x up.sh e posteriormente chmod +x down.sh
Feito isso você poderá rodar o up.sh ou down.sh no terminal e ver a mágica acontecer.
Por fim, para instalar o Laravel:
composer create-project laravel/laravel ./Não esqueça criar o .env do laravel a partir do .env.example com as informações atualizadas do banco de dados.