FROM golang:1.21-alpine AS builder # 安装基本依赖 RUN apk add --no-cache gcc musl-dev git # 设置工作目录 WORKDIR /app # 设置GOPROXY以绕过GitHub认证问题 ENV GOPROXY=https://goproxy.cn,direct ENV GO111MODULE=on # 复制go.mod和go.sum文件 COPY go.mod go.sum ./ RUN go mod download || true # 复制所有源代码 COPY . . # 编译应用 RUN CGO_ENABLED=1 GOOS=linux go build -o wxserver . # 第二阶段:运行阶段 FROM alpine:latest # 安装必要的运行时依赖 RUN apk add --no-cache ca-certificates tzdata # 设置时区 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone # 创建必要的目录 RUN mkdir -p /app/assets /app/static/templates # 从builder阶段复制编译好的二进制文件和必要的目录 COPY --from=builder /app/wxserver /app/ COPY --from=builder /app/assets/ /app/assets/ COPY --from=builder /app/static/ /app/static/ # 设置工作目录 WORKDIR /app # 暴露HTTP服务端口 EXPOSE 5253 # 运行应用 CMD ["./wxserver"]