因?yàn)?code>go語(yǔ)言編譯好之后為可執(zhí)行文件,不需要依賴(lài)go
語(yǔ)言環(huán)境即可運(yùn)行,所以可以在帶go
語(yǔ)言的docker
鏡像中編譯,編譯完成之后將二進(jìn)制文件拷貝到一個(gè)不帶go
環(huán)境的較小的鏡像即可,這里采用alpine
鏡像作為運(yùn)行的鏡像,以下是Dockerfile
例子
FROM golang:alpine AS development
WORKDIR $GOPATH/src
COPY . .
RUN go build -o app
FROM alpine:latest AS production
WORKDIR /root/
COPY --from=development /go/src/app .
EXPOSE 8080
ENTRYPOINT ["./app"]
這樣制作完成的鏡像只有8.5M
的大小,其中alpine
基礎(chǔ)包5.53M