FROM golang:1.14
RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
WORKDIR /go/src/app
COPY . .
RUN dep ensure
RUN go build -o app-bin .
ENTRYPOINT ["./app-bin"]
Código-fonte
Executável
Em linguagens compiladas, pra rodar a aplicação, você só precisa do código executável - e nada do que foi necessário pra gerar ele.
FROM golang:1.14 as build
RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
WORKDIR /go/src/app
COPY . .
RUN dep ensure
RUN go build -o app-bin .
FROM scratch
COPY --from=build /go/src/app/app-bin ./
ENTRYPOINT ["./app-bin"]
FROM golang:1.14 as build
RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
WORKDIR /go/src/app
COPY . .
RUN dep ensure
RUN CGO_ENABLED=0 go build -installsuffix nocgo -o app-bin .
FROM scratch
COPY --from=build /go/src/app/app-bin ./
ENTRYPOINT ["./app-bin"]
Aviso: tutoriais de internet (e até palestras como essa) raramente vão te dar o melhor caminho pra uma imagem produtiva, isso é outro tópico
slides: biancarosa.com.br/talks