FROM golang:1.19 as builder # 设置环境变量GO111MODULE为on ENV GO111MODULE=on # 设置环境变量GOPROXY为https://goproxy.io,direct ENV GOPROXY=https://goproxy.cn,direct # 声明工作目录 WORKDIR /go/src/gin-vue-admin # 拷贝server项目到工作目录 COPY . . # go env为查看go的环境变量, go build -o server . 为打包项目,二进制 # RUN go build -o server . RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o server . # ======= 以下为多阶段构建 ======= # 声明镜像来源为alpine:latest FROM alpine:latest ENV TZ=Asia/Shanghai RUN echo "http://mirrors.aliyun.com/alpine/v3.4/main/" > /etc/apk/repositories \ && apk --no-cache add tzdata zeromq \ && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ && echo '$TZ' > /etc/timezone # 声明工作目录 WORKDIR /go/src/gin-vue-admin # 拷贝打包好的server二进制文件到当前工作目录 COPY --from=builder /go/src/gin-vue-admin/server ./ # 拷贝config.yaml配置文件到当前工作目录 COPY --from=builder /go/src/gin-vue-admin/online/config.yaml ./ # 拷贝resource静态文件夹到当前工作目录 COPY --from=builder /go/src/gin-vue-admin/resource ./resource # 运行打包好的二进制 RUN pwd \ && ls EXPOSE 8052 ENTRYPOINT ["/go/src/gin-vue-admin/server"]