FROM
No Dockerfile, a instrução FROM
é uma das mais importantes e obrigatórias. Ela define a imagem base a partir da qual o restante da imagem Docker será construída. Aqui está um detalhamento sobre como a instrução FROM
funciona:
Sintaxe Básica
<imagem-base>
: Define a imagem base que será usada para construir a nova imagem. Esta imagem pode estar disponível no Docker Hub ou em um registro privado.<tag>
: Opcionalmente, você pode especificar uma tag para a imagem base. Se nenhuma tag for especificada, a taglatest
será utilizada por padrão.[AS <alias>]
: Também opcional, permite dar um nome (alias) ao estágio de construção, o que é útil em ambientes de múltiplos estágios.
Exemplo Simples
Neste exemplo, o Dockerfile utiliza a imagem ubuntu
com a tag 20.04
como base.
Imagens Multistage
Em cenários onde você deseja otimizar a imagem final (por exemplo, removendo arquivos temporários ou compilações intermediárias), você pode usar imagens de múltiplos estágios:
Neste exemplo:
O primeiro estágio, chamado
builder
, utiliza uma imagem do Golang para compilar uma aplicação.O segundo estágio usa uma imagem
alpine
, e apenas o binário final é copiado para essa imagem, resultando em uma imagem Docker muito menor e otimizada para produção.
Utilização de FROM scratch
FROM scratch
Em alguns casos, especialmente quando você deseja criar uma imagem muito leve, você pode usar scratch
como a imagem base. scratch
é uma imagem vazia, útil para criar imagens minimalistas.
Este exemplo seria típico para aplicações Go ou C que não dependem de bibliotecas externas.
Considerações
A escolha da imagem base impacta diretamente o tamanho da imagem final e as dependências disponíveis.
Sempre use imagens oficiais e seguras como base, e considere especificar uma tag para garantir que a construção seja previsível.
Essa explicação cobre o essencial sobre a instrução FROM
no Dockerfile.
Last updated