FROM golang:1.17-alpine WORKDIR /build # 工作目录 ADD . ./ # 复制文件到工作目录 ENV GO111MODULE=on \ # 设置Go Module模式,并修改代理 GOPROXY=https://goproxy.cn RUN go mod download # 下载go.mod里面所用到的包 RUN go build -o hejiusha . # 编译 EXPOSE8888# 暴露端口 ENTRYPOINT ["./hejiusha"] # 运行
多段构造
这种方式可以把编译环境和运行环境进行分割,极大的减小了运行镜像的大小
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#----------build----------# FROM golang:1.17-alpine AS builder WORKDIR /build # 工作目录 ADD . ./ # 复制文件到工作目录 ENV GO111MODULE=on \ # 设置Go Module模式,并修改代理 GOPROXY=https://goproxy.cn RUN go mod download # 下载go.mod里面所用到的包 RUN go build -o hejiusha . # 编译