Files
hfb_sys/backend/Dockerfile
T
yml2213 732f34b23e feat(pickup): 线下提号完成时发放号主成长积分
- 提号完成按号主实际结算金额发放积分,使用提号单维度幂等键防重复
- 增加线下提号积分补发脚本,默认预演,支持指定起始时间和单号
- 补充提号完成与积分幂等回归测试
2026-11-08 15:06:47 +08:00

52 lines
2.2 KiB
Docker

FROM golang:1.26-alpine AS build
WORKDIR /src
ARG GOOSE_VERSION=v3.27.1
ARG GOPROXY=https://goproxy.cn,direct
ARG GOSUMDB=sum.golang.google.cn
ENV GOPROXY=${GOPROXY} \
GOSUMDB=${GOSUMDB}
COPY go.mod go.sum* ./
RUN --mount=type=cache,target=/go/pkg/mod go mod download
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
go install github.com/pressly/goose/v3/cmd/goose@${GOOSE_VERSION}
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=linux go build -o /out/hfb-api ./cmd/api
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=linux go build -o /out/hfb-storage-migrate ./cmd/storage-migrate
# 一次性运维脚本:线下提号邀请返利补发(默认预演,-apply 才写库)
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=linux go build -o /out/hfb-rebate-backfill ./cmd/rebate-backfill
# 一次性运维脚本:优质号主上线后线下提号号主积分补发(默认预演,-apply 才写库)
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=linux go build -o /out/hfb-pickup-points-backfill ./cmd/pickup-points-backfill
FROM alpine:3.22
WORKDIR /app
ENV TZ=Asia/Shanghai
# 国内服务器访问 dl-cdn.alpinelinux.org 常极慢,改用阿里云镜像
RUN sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.aliyun.com/alpine#g' \
/etc/apk/repositories \
&& apk add --no-cache tzdata \
&& addgroup -S -g 10001 app \
&& adduser -S -D -H -u 10001 -G app app \
&& mkdir -p /app/logs \
&& chown app:app /app/logs
COPY --from=build /out/hfb-api /app/hfb-api
COPY --from=build /out/hfb-storage-migrate /app/hfb-storage-migrate
COPY --from=build /out/hfb-rebate-backfill /app/hfb-rebate-backfill
COPY --from=build /out/hfb-pickup-points-backfill /app/hfb-pickup-points-backfill
COPY --from=build /go/bin/goose /app/goose
COPY --from=build /src/migrations /app/migrations
USER app:app
EXPOSE 8080
CMD ["/app/hfb-api"]