Escrito por Diogo Bemfica em 2017-09-05
No meu trabalho atual eu estou tentando implementar a arquitetura de micro serviços para o nosso enorme monolito. E aí que entra o docker, ele faz com todo essa implementação e ter vários serviços pequenos trabalhando juntos de forma muito tranquila.
Nesse artigo gostaria de compartilhar a minha experiência que foi criar o meu primeiro container, um container que vai servir uma pequena API que usamos para o aplicativo mobile de vendas da nosso ERP, usando o Nginx + PHP FPM e baixando o projeto de um repositório git privado hospedado no Bitbucket.
A forma de utilizei para criar o container foi usando o Dockerfile, um pequeno arquivo com instruções para criar a imagem do container, onde dentro dessa arquivo coloquei todos os comandos necessários para que o container já saia rodando com um comando após a criação da imagem.
Para começar usamos o comando "FROM" e depois a imagem da onde nós vamos nos basear para criar a nossa imagem, neste caso o ubuntu 16.04.
Depois precisamos declarar o mantenedor dessa imagem vamos criar.
MAINTAINER <Seu nome> "<seu e-mail>"
Com o comando "ENV" definimos uma variável para o nosso Nginx
Com o comando "RUN" rodamos comandos dentro do nosso futuro container
É importante o parâmetro -y no apt-get para que ele não te pergunta nada durante a instalação dos pacotes.
Agora definimos as configurações de log e cache do nosso Nginx
O arquivo default utilizado nesse artigo está mais abaixo
Agora esse comando é opcional, é só para quem quer vai usar o composer para fazer o build da sua aplicação.
Vamos nos preparar para baixar a nossa aplicação do Bitbucket, vamos definir o diretório para o git clone com o comando "WORKDIR".
Para fazermos o git clone vamos usar o comando.
RUN git clone https://<seu usuario>:<sua senha>@bitbucket.org/<usuario dono do repositório>/<nome do repositório> <nome da aplicação>
Para finalizar e a onde muito gente se atrapalhar ao definir um Dockerfile, apesar de termos feito tudo certo até agora, os nossos serviços do Nginx e PHP FPM estão instalados mas ele não vão iniciar de forma automática, mas para definirmos isso usamos a comando "CMD" para rodar os seguintes comandos.
O seu Dockerfile deve ficar parecido com isso.
Arquivo default O arquivo default utilizado na criação desse Dockerfile está logo abaixo, ele precisar estar no mesmo diretório a onde está o Dockerfile para que o comando "ADD" descrito acima funcione.
root /var/www/html/<nome da aplicação>;
Neste arquivo já está configurado as URLs amigáveis.
Finalizando Com esses dois arquivos estamos pronto para criar o nosso container. Vamos dar o nosso primeiro Build(a construção da imagem).
docker build . -t <nome da imagem>
Com a nossa imagem criada vamos levantar o nosso container.
docker run -d -p 8080:80 <nome da imagem>
Usamos o parâmetro -d para que container não ocupe o terminal e execute em background e o parâmetro -p definimos as portas, onde 8080 é a porta do host e o 80 é a porta do container.
Executando o comando "docker ps" você pode ver todos os container rodando atualmente na sua máquina e perceber que o nosso container está lá.
Espero que tenha gostado desse artigo e acho importante avisar que estou começando a brincar com Docker, então tenho pouca experiência. Mas apesar de ser pouca acho que essa informação pode ser útil para quem está com dificuldades para criar os seus primeiros containers.