# syntax=docker/dockerfile:1.7 ARG GO_VERSION=1.25 ARG ALPINE_VERSION=3.23 FROM golang:${GO_VERSION}-alpine AS builder ARG VERSION=dev ARG BUILD_DATE="" RUN apk add --no-cache ca-certificates git WORKDIR /workspace COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build \ -trimpath \ -ldflags="-s -w -X github.com/Rain-kl/Wavelet/internal/buildinfo.Version=${VERSION} -X github.com/Rain-kl/Wavelet/internal/buildinfo.BuildTime=${BUILD_DATE}" \ -o /out/openflare-server \ ./main.go FROM alpine:${ALPINE_VERSION} ARG TZ=Asia/Shanghai RUN apk add --no-cache ca-certificates tzdata postgresql-client && \ cp /usr/share/zoneinfo/${TZ} /etc/localtime && \ echo "${TZ}" > /etc/timezone WORKDIR /app COPY --from=builder /out/openflare-server ./openflare-server COPY docs ./docs EXPOSE 3000 ENTRYPOINT ["./openflare-server"] CMD ["api"]