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:
- Conceitos básicos, caso de uso, vantagens e instalação
- Criação de um ambiente PHP
- 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!
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
Opa, no caso do exemplo do artigo é na linha
30
no arquivonginx.conf
e deve também mapear os volumes como está nas linhas9
e22
do arquivodocker-compose.yml
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.
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.