Usar um estágio de build como base
Também é possível utilizar a imagem intermediária para outra imagem que, inclusive, pode ser uma imagem intermediária.
Dockerfile:
# IMAGEM INTERMEDIARIA 1
# imagem base nomeada como build
FROM golang:1.18.1 AS build
WORKDIR /build
COPY . .
# compilacao da aplicacao em binario
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .
# IMAGEM INTERMEDIARIA 2 A PARTIR DA IMAGEM INTERMEDIARIA 1
# imagem intermediaria package_build
# o binario da aplicacao compilada foi trazida para essa imagem
FROM build AS package_build
WORKDIR /pkg
# copia arquivo de imagem remota
COPY --from=marcelodpbarbieri/pacote-bin:latest /pkg/pacote.bin .
# IMAGEM FINAL
# imagem base nomeada como app
FROM alpine:3.20.2 AS app
WORKDIR /app
# copia do pacote.bin da imagem intermediaria (package_build)
COPY --from=package_build /pkg/pacote.bin .
# copia do binario da imagem intermediaria (build) para a imagem final
COPY --from=package_build /build/main .
CMD ["./main"]Construção da imagem:

Last updated