FROM golang:1.20.14-alpine3.19 AS builder

# 为镜像设置必要的环境变量
ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64 \
    GOPROXY="https://goproxy.cn,direct"

# 移动到工作目录：/build
WORKDIR /build

# 复制go.mod和go.sum文件，以便Docker可以利用缓存
COPY go.mod go.sum ./

# 将代码复制到容器中
COPY . .

# 将我们的代码编译成二进制可执行文件app
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    && go build -o app .


FROM alpine:3.19

WORKDIR /dist

# 修改服务器的时区
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    && apk update && apk --no-cache add tzdata \
    && cp -rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 从builder镜像中把文件拷贝到当前目录
COPY --from=builder /build/app /dist
COPY ./conf /dist/conf

# 执行命令
CMD /dist/app