Criando um ambiente de desenvolvimento PHP mínimo com Docker – Parte 3 | iMasters
Fala devs, vamos com a terceira e última parte? Este artigo faz parte de uma série onde escrevo sobre docker e mostro como é simples configurar um ambiente de desenvolvimento mínimo utilizando containers.
Conceitos básicos, caso de uso, vantagens e instalação
Criação de um ambiente PHP
Para enriquecer o nosso ambiente de desenvolvimento docker iremos adicionar um container de banco de dados (MySQL) e um servidor web (Nginx), mas você pode adicionar containers conforme as necessidades do seu ambiente de desenvolvimento ou projeto seguindo este fluxo.
O conteúdo do arquivo docker-compose.yml deverá ser modificado, pois iremos adicionar o novo container, ficando assim:
image: phpdocker
- ".:/var/www/html/"
command: php -S 0.0.0.0:9000 -t public/
MYSQL_PASSWORD: '12345678'
Nele, estamos declarando a utilização da imagem mysql:5.7, definindo as credenciais de acesso, apontando a relação de dependência com o MySQL através da tag link, bem como a porta em que será executado e o mapeamento de volumes. Este último faz com que não percamos o que foi persistido nos bancos de dados após "derrubarmos" o container.
Testando PHP + MySQL:
Para fins didáticos, modifique o arquivo public/index.php e insira o seguinte conteúdo:
$pdo = new PDO('mysql:host=mysql;dbname=database', 'root', '12345');
O código acima realiza uma conexão com a base dados database que foi declarada como banco de dados padrão no container de MySQL.
Se tudo deu certo, você pode "subir" os containers com o comando e docker-compose up -d e verificar se a conexão foi realizada com sucesso através do browser no seguinte endereço:
Será necessário criar um arquivo com as configurações do servidor web. Para isso, crie um diretório chamado webserver e dentro dele, o arquivo nginx.conf com o seguinte conteúdo:
root         /var/www/html/public/;
O conteúdo do arquivo docker-compose.yml deverá pela última vez ser modificado para adicionarmos o nosso container de servidor web, ficando assim:
- "./webserver/nginx.conf:/etc/nginx/nginx.conf"
# command: php -S 0.0.0.0:9000 -t public/
Nele, estamos declarando a utilização da imagem nginx:1.17.3, definindo o mapeamento dos volumes (diretório de trabalho e arquivo de configurações), a porta em que estará disponível e apontando as dependências, que agora não serão mais definidas no container de PHP, e é por isso que as linhas 24 e 25 foram comentadas.
Podemos observar que o comando que foi declarado na linha 25 também foi comentado, uma vez que a partir de agora nossa aplicação será executada pelo servidor web e não mais pelo servidor embutido do PHP.
Se tudo deu certo, você pode "subir" os containers com o comando e docker-compose up -d e acessar a aplicação através do browser no seguinte endereço:
Se você clonar este repositório terá o ambiente docker desenvolvido nessa série pronto para uso em sua máquina!
Sei que são infinitas as possibilidades quando falamos sobre a utilização de containers docker, mas o propósito deste grupo de artigos é mostrar como é simples trazer isso para o nosso dia a dia de forma tranquila e sem pesadelos.
Chegamos ao final da série "Criando um ambiente de desenvolvimento PHP mínimo com Docker" e eu espero que este conteúdo seja útil para a comunidade!