Melhores práticas de construção de imagens com Dockerfiles

Assuntos de encomenda

Em Dockerfiles, a encomenda é muito importante. Por exemplo, não é a mesma coisa executar uma instrução COPY ou ADD para adicionar um ficheiro executável e depois executá-lo do que tentar executá-lo antes de o adicionar. Isto parece óbvio mas é um dos principais erros que fazem com que um Dockerfile não funcione correctamente quando se tenta criar uma imagem a partir dele.

Iluminar a imagem apagando ficheiros

Sempre que criar uma imagem, lembre-se de apagar ficheiros temporários de que não necessita ao executar a aplicação, pois isso poupará espaço em disco. Por exemplo, se descarregar um ficheiro comprimido para executar a aplicação, descomprimir o seu conteúdo e este conteúdo é o que irá utilizar, deverá apagar o ficheiro comprimido para tornar a imagem mais leve.

Reduzir o número de ficheiros

Evitar a instalação de pacotes desnecessários. Se não o fizer, poderá ter um maior consumo de memória e disco com a imagem que está a criar e poderá também ter mais problemas de segurança, pois terá de manter e actualizar estes ficheiros em cada versão.

Evite incluir ficheiros que não deve usar “.dockerignore”.

Evite incluir ficheiros que não devem ser incluídos, tais como ficheiros contendo dados pessoais, utilizando ficheiros “.dockerignore”. Estes ficheiros são semelhantes aos ficheiros “.gitignore” e com algumas linhas podemos evitar a filtragem de informação.

Especifica a versão da imagem de base e as dependências

É importante utilizar versões concretas e não utilizar imagens de base e dependências sem especificar uma versão. A não especificação de versões pode levar a bugs imprevistos que são difíceis de localizar.

Usar a imagem de base correcta

É importante utilizar as menores imagens de base possíveis, tais como Alpine ou Busybox, sempre que possível. Por outro lado, é possível que com algumas aplicações precisemos de imagens específicas para que a aplicação funcione, neste caso não há muito mais a comentar, utilizá-las.

Finalmente, sempre que possível utilizar imagens de base oficiais, isto evitará problemas tais como a utilização de imagens com malware incorporado.

Reutilização de imagens

Se todas as imagens em execução nos seus anfitriões forem baseadas no Ubuntu:20.04 por exemplo, a utilização desta imagem base pode poupar-lhe mais espaço em disco do que a utilização de uma pequena imagem como Alpine ou Busybox, uma vez que já tem a outra imagem guardada no disco.

Deixe um comentário