Criando um ambiente de desenvolvimento PHP mínimo com Docker Pt. 3

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.

Série completa:

  1. Conceitos básicos, caso de uso, vantagens e instalação
  2. Criação de um ambiente PHP
  3. Servidor web e banco de dados

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.

MySQL:

O conteúdo do arquivo docker-compose.yml deverá ser modificado, pois iremos adicionar o novo container, ficando assim:

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:

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:

http://localhost:9000/

Nginx:

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:

O conteúdo do arquivo docker-compose.yml deverá pela última vez ser modificado para adicionarmos o nosso container de servidor web, ficando assim:

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:

http://localhost:8080/


Conclusã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!

Obrigado e forte abraço!

4 respostas a “Criando um ambiente de desenvolvimento PHP mínimo com Docker Pt. 3”

  1. Fala ai beleza?

    onde que eu aponto no nginx a pasta para onde fica meus arquivos?

    fiz todo procedimento porém quando instalei o nginx nao mostra mais o index.php

  2. Fala, Gustavo!!!

    Tudo certo?!

    Pergunta de iniciante, desculpa aí a ignorância.

    Como faria para fazer configuração ao simples website que contém tela de login, painel de solicitação após login ??

    Simplesmente, devo colocar a pasta do projeto dentro do diretório raiz onde está o docker ??
    Obrigado pelo retorno.

    1. Fala Rafael, tudo certo!

      Sugiro criar uma pasta na raiz do seu projeto chamada docker e colocar ali dentro os arquivos responsáveis por “subir” toda a estrutura configurada, dessa forma, no arquivo de configuração do servidor web (nginx, no caso desse artigo) você faz o mapeamento do volume onde os arquivos da aplicação estarão.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *