DEV Community

CARLOS RAMÍREZ BELTRÁN
CARLOS RAMÍREZ BELTRÁN

Posted on

Implementação de ambiente para desenvolvimento de aplicação utilizando Docker

  1. Introdução

O ambiente que vai ser implementado e descrito a continuação é a base para um contexto de desenvolvimento e execução de testes de um sistema web de gestão acadêmica e econômica.

O sistema foi desenvolvido na linguagem PHP, com suporte do servidor Apache, e trabalha com um banco de dados relacional em MySQL. Adicionalmente, para ter uma gestão visual do banco de dados, se utiliza o gestor phpMyAdmin.

De acordo ao descrito, teríamos 3 containers (Ver Figura 1), os quais vão ser criados e gerenciados com apoio da ferramenta Docker. Vai se utilizar também, como orquestrador desses containers o Docker Compose.
Nas seguintes seções vai se descrever de maneira rápida a instalação do Docker e a Criação dos Containers.

Alt Text

  1. Instalação do Docker:

Vamos abordar brevemente os pontos importantes da instalação do Docker. Foi necessário fazer download do instalador do site do docker (https://www.docker.com/get-started). Utilizamos o Docker Desktop para Windows 10.

Após o processo de instalação, acessamos ao cmd do Windows, com a finalidade de verificar que o Docker foi instalado com sucesso, então digitamos o comando “docker version” e deveríamos ter um resultado como na Figura 2.

Alt Text

  1. Criação de Containers 3.1. PHP e Apache Nesta seção vamos descrever passo a passo a criação dos containers. Trabalharemos com Docker Compose, que é uma ferramenta para definir e executar aplicativos Docker de vários containers. Se usa um arquivo com extensão YAML para fazer as configurações correspondentes [1].

Primeiro vamos criar a pasta onde teremos o projeto, no nosso caso foi chamada de “test_docker” e alocada no Desktop do Windows.

No site https://hub.docker.com/ procuramos as imagens que vamos utilizar para nosso ambiente. Primeiro vamos procurar a imagem de Apache com PHP, e escolhemos a imagem chamada “webdevops/php-apache” (Ver Figura 3). Esta imagem pode ser baixada em linha de comandos com o comando “docker pull webdevops/php-apache”.

Alt Text

No nosso caso vamos criar o arquivo chamado docker-compose.yaml na pasta do projeto e vamos a escrever as variáveis necessárias (Ver Figura 4). Para criação e edição do arquivo YAML vamos utilizar na ferramenta Visual Studio Code.

Alt Text

Na Figura 4, no parâmetro image indicamos de onde vamos baixar a image, com o parâmetro ports indicaremos os portos que vai utilizar a aplicação. O parâmetro volumes indicará os caminhos de origem e destino de nossa pasta que vai chamar-se “www” e estará dentro da pasta do nosso projeto. Ambos caminhos são separados com o uso dos 2 pontos “:”.

Assim, dentro da pasta “www”, teremos os arquivos pertencentes a nossa aplicação PHP (Ver Figura 5). O aplicativo que será usado como teste para os containers, pois já foi desenvolvido com anterioridade.

Alt Text

Uma vez implementado o arquivo composse, vamos para o terminal e nos dirigimos a pasta do projeto. Uma vez aí digitamos o comando “docker composse up” e vamos ter o visualizado na Figura 6, temos que deixar que ele finalize.

Alt Text

Ao executar o comando “docker composse up“ da Figura 6 vai-se procurar a imagem, e se for o caso de não achar a imagem, ela vai ser baixada e depois criado o container pertencente a aplicação Apache + PHP. Uma vez finalizada a execução, vamos abrir um novo terminal e verificar que o container existe e está sendo executado (Status: Up); para isso botamos no terminal o comando “docker ps” (ver Figura 7).

Alt Text

Estando tudo certo, continuamos como o teste daquela execução, então vamos a copiar na pasta “www” o aplicativo que já está implementado. Depois abrimos uma janela do navegador web e botamos o endereço: 192.168.99.100/4500 (Ver Figura 8). Assim verificamos que todo este certo.

Alt Text

Com isso verificado, finalizamos a primeira parte.

3.2. MySQL

Agora, voltamos para a linha de comando e paramos a execução do container (esta parte é indispensável para poder rodar o próximo container). Logo disso, nos dirigimos ao site do Docker e procuramos a imagem para o MySQL. Utilizou-se a imagem oficial do mesmo nome “mysql” (Ver Figura 9).

Alt Text

Uma vez achado, nos dirigimos a nosso arquivo docker-compose e adicionaremos os parâmetros para nossa imagem (Ver Figura 10). Com o parâmetro command, indicaremos que utilizaremos o método tradicional para autenticação, já que utilizamos a última versão do MySQL e ela bem com o método “caching_sha2_password” e pode nos ocasionar erros. Com o parâmetro restart: always, indicaremos que sempre vai se reiniciar. E com o parâmetro environment, indicaremos o password para o usuário root.

Alt Text

Uma vez feito, salvamos o arquivo e no terminal digitamos novamente o comando “docker-compose up”. Esperamos ele terminar e verificar que esteja sendo executado (Ver Figura 11).

Alt Text

Com o comando anterior, vai ser baixada a imagem do MySQL e podemos ver também que tendo já no nosso arquivo YAML anteriormente a parte do servidor Apache e PHP, o Docker vai reconhecer que esse container já existe e vai reutilizar. Nesta execução se centrou só em aquelas partes que ainda não foram baixadas, sendo o caso do MySQL.
Uma vez feito, vamos parar mais uma vez os dois containers (Ver Figura 12), para poder fazer a última parte.

Alt Text

3.3. phpMyAdmin
Vamos buscar a imagem para o phpMyAdmin, e vamos utilizar o “phpmyadmin/phpmyadmin” (Ver Figura 13).

Alt Text

Nos dirigimos mais uma vez ao arquivo docker-compose e adicionamos nas ultimas linhas os parâmetros necessários para nosso último container (Ver Figura 14). Indicamos o password (MYSQL_ROOT_PASSWORD) que vai ser root e o parâmetro port indicando o porto com o que vai funcionar a aplicação.

Alt Text

Por fim, nosso arquivo final docker-compose.yaml, com tudo o feito fica como na Figura 15.

Alt Text

Nos dirigimos ao terminal e executamos mais uma vez o comando “docker-compose up” (Ver Figura 16) e neste caso vai adicionar o container do phpMyAdmin aos outros 2 já existentes (Apache+PHP e MySQL).

Alt Text

Uma vez finalizados os comandos pull e ver que esteja rodando os containers, verificamos a instalação na aba do navegador indicando o endereço: 192.168.99.100:8088 (Ver Figura 17 e Figura 18).

Alt Text

Alt Text

Podemos verificar também, no outro terminal que temos aberto, que os containers estejam sendo executados com o comando “docker ps”, vemos o estado de Up a cada um deles (Ver Figura 19).

Alt Text

Uma vez, que temos os 3 containers feitos, podemos já carregar nossa base de dados, que neste caso se chama “colegiocarb”, com auxílio do phpMyAdmin (Ver Figura 20).

Alt Text

É importante sabes que temos que mudar a configuração da classe connection do nosso aplicativo php, já que se inicialmente utilizamos localhost ou o nome do servidor, neste caso temos que botar o nome do servidor que acabamos de criar como o Docker (Ver Figura 21).

Alt Text

Por fim, vamos verificar que o aplicativo esteja operativo e sem problemas. Sabendo que o aplicativo não acessaria se a conectividade entre o PHP e o bando de dados MySQL estivesse inexistente, mas verificamos que tudo foi certo no server 192.168.99.100:4500 (Ver Figura 22).

Alt Text

Referencias:

  1. Overview of Docker Compose. Docker. Docker Docs, 2019. Pagina Inicial. Disponível em: https://docs.docker.com/compose/. Acesso em: 21 de out. de 2019.

Top comments (0)