Com o crescimento da computação em nuvem e a diversidade de infraestruturas utilizadas por aplicações, ter flexibilidade para trabalhar é indispensável e saber o que é DockerFile torna isso possível.
Um único arquivo capaz de fornecer instruções para a construção de ambientes dos mais variados níveis e complexidades, facilitando o trabalho em equipe e garantindo que todos estejam trabalhando sob as mesmas configurações.
Descubra neste artigo o que é o DockerFile e como fazer um build para começar os trabalhos.
O que é DockerFile
O DockerFile é uma maneira de criar imagens para execução de containers Docker, com instruções personalizadas e que podem ser modificadas posteriormente, conforme a necessidade.
O arquivo DockerFile é uma estrutura contendo instruções executadas em top-down, que ao final da execução, deixam o container pronto para uso.
A estrutura do DockerFile
Agora que você já sabe o que é dockerfile, vamos falar sobre a sua estrutura. A estrutura do arquivo DockerFile é composta por instruções, em ordem de execução. Entre as principais instruções do DockerFile estão:
-
FROM: é obrigatório e informa qual imagem será utilizada como ponto de partida
-
RUN: utilizada para executar comandos durante o build responsável pela montagem da imagem
-
CMD: só deve ser inserido uma vez no DockerFile, pois executa apenas na criação do container
-
EXPOSE: informa quais serão as portas liberadas ao criar o container
-
COPY: copia arquivos e pastas locais
-
ADD: copia arquivos e pastas remotas ou compactadas
-
VOLUME: informa um ponto de montagem e disponibiliza uma pasta entre o container e o host
-
WORKDIR: define uma pasta no container onde serão executados os comandos
-
USER: define o usuário para execução de comandos
-
BUILD: cria a imagem a partir do DockerFile
Como fazer um build do DockerFile
O processo de build consiste em 3 etapas:
-
Criar o DockerFile
-
Gerar a imagem
-
Construir o container
Para o primeiro passo você deve construir o seu arquivo Dockerfile com as instruções de configuração do container. Nesse passo é importante ter em mente que o uso de imagens oficiais ajuda a ter um container de qualidade e push e pull mais eficientes.
Veja a seguir um exemplo simples usando a imagem oficial do Alpine Linux e a execução individual de alguns comandos:
FROM alpine:latest
COPY crons /app
RUN apk update
RUN apk add crond
RUN apk add tzdata
RUN ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
RUN ln -sf /app/crons /etc/crontabs/root
ENTRYPOINT [ “crond”, “-f”]
Com o arquivo DockerFile criado é hora de criar a imagem com a execução do comando a seguir:
docker build -t nome_da_imagem .
Feito isso, é hora de criar o container a partir dessa imagem. Isso é feito com o comando:
docker run nome_da_imagem
E assim você constrói imagens personalizadas e cria containers para otimizar o desenvolvimento de aplicações e diversos outros trabalhos com estruturas personalizadas conforme a necessidade.
Boas práticas na criação de DockerFile
Veja a seguir algumas dicas para ter arquivos DockerFile melhores:
-
fique de olho na ordem das instruções
-
containers devem ser imutáveis
-
consolide as instruções para minimizar camadas
-
instale somente os pacotes necessários
-
faça uso do arquivo .dockerignore
-
declare o que for mais passível de alteração no final do arquivo
-
utilize o menor número possível de instruções no DockerFile
Agora que você já sabe como funciona um DockerFile, quais são os principais comandos e o que fazer para criar um arquivo melhor, é hora de colocar em prática.
E se tiver alguma dúvida, deixe aqui nos comentários que vamos te ajudar.