docker image build --target

A documentação do comando docker build --target descreve como direcionar a construção de uma imagem para um estágio específico em um Dockerfile que utiliza multi-stage builds.

Uso Básico

No Dockerfile, você pode definir múltiplos estágios (ou targets), cada um com um nome específico usando a instrução AS. O --target permite que você construa a imagem apenas até um estágio específico, ignorando os estágios subsequentes.

Exemplo de Dockerfile com Multi-stage Builds

# Estágio de build
FROM golang:1.18.1 AS build
WORKDIR /build
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

# Estágio final
FROM alpine:3.20.2 AS app
WORKDIR /app
COPY --from=build /build/main .
CMD ["./main"]

Comandos de Construção Usando --target

  • Para construir a imagem até o estágio build:

    docker build --target build -t myapp:build .

    Este comando para a construção após o estágio build, gerando uma imagem que pode ser usada para debug ou testes intermediários.

  • Para construir a imagem até o estágio final (app):

    docker build --target app -t myapp:latest .

    Isso constrói a imagem completa, incluindo todos os estágios anteriores ao estágio app.

Vantagens

  • Eficiência: Reduz o tempo de construção e uso de recursos ao construir apenas até o estágio necessário.

  • Flexibilidade: Permite a criação de diferentes versões da imagem para diferentes propósitos (por exemplo, produção, desenvolvimento, testes) a partir de um único Dockerfile.

Comando Completo

Opções Relevantes

  • --target <stage>: Especifica o estágio até onde a construção deve ir. Estágios após esse ponto serão ignorados.

Referências

Para mais detalhes, você pode consultar a documentação oficial do Docker aqui.

Last updated