Target para fazer o build

$ docker image ls
REPOSITORY                                TAG          IMAGE ID       CREATED          SIZE

Dockerfile.multstage:

# IMAGEM INTERMEDIARIA
# imagem base nomeada como build
FROM golang:1.18.1 AS build
WORKDIR /build
COPY . .
# compilacao da aplicacao
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

# IMAGEM FINAL
# imagem base nomeada como app
FROM alpine:3.20.2 AS app
WORKDIR /app
# copia do binario da imagem intermediaria (build) para a imagem final
COPY --from=build /build/main .
CMD ["./main"]

Execução somente da imagem intermediária BUILD:

$ docker image build -t marcelodpbarbieri/app-multi-stage 
                               -f Dockerfile.multistage --target=build .
[+] Building 6.6s (10/10) FINISHED                                                               docker:default
 => [internal] load build definition from Dockerfile.multistage                                            0.0s
 => => transferring dockerfile: 457B                                                                       0.0s
 => [internal] load metadata for docker.io/library/golang:1.18.1                                           1.5s
 => [auth] library/golang:pull token for registry-1.docker.io                                              0.0s
 => [internal] load .dockerignore                                                                          0.0s
 => => transferring context: 2B                                                                            0.0s
 => CACHED [build 1/4] FROM docker.io/library/golang:1.18.1@sha256:12d3995156cb0dcdbb9d3edb5827e4e8e1bf5b  0.0s
 => [internal] load build context                                                                          0.0s
 => => transferring context: 547B                                                                          0.0s
 => [build 2/4] WORKDIR /build                                                                             0.0s
 => [build 3/4] COPY . .                                                                                   0.0s
 => [build 4/4] RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .                      4.7s
 => exporting to image                                                                                     0.3s
 => => exporting layers                                                                                    0.2s
 => => writing image sha256:854ab5da955bf79c3b838a73b59ed4db39ad0c452fdbe4bc35e65502267bdaee               0.0s
 => => naming to docker.io/marcelodpbarbieri/app-multi-stage                                               0.0s
$ docker image ls
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
marcelodpbarbieri/app-multi-stage   latest    854ab5da955b   3 seconds ago   1.02GB

Destaque para:

Last updated