fix(payment): 支付插件 - 修复跨平台构建与运行时缓存 (#402)

This commit is contained in:
MasterChiefCN
2026-09-03 11:05:29 +08:00
committed by GitHub
parent f8e87bcc4c
commit 367a0933cf
18 changed files with 795 additions and 33 deletions

View File

@@ -1,5 +1,42 @@
# syntax=docker/dockerfile:1.7
ARG BUILDPLATFORM
ARG TARGETPLATFORM
FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS payment-package-build
ARG TARGETOS
ARG TARGETARCH
ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG GOPROXY=https://proxy.golang.org,direct
ENV GOPROXY=$GOPROXY
RUN apk add --no-cache nodejs unzip zip
WORKDIR /src
COPY backend/go.mod backend/go.sum ./backend/
RUN --mount=type=cache,target=/go/pkg/mod cd backend && go mod download
COPY backend ./backend
COPY plugin-packages ./plugin-packages
RUN --mount=type=cache,target=/root/.cache/go-build set -eu; \
test -n "$TARGETOS"; \
test -n "$TARGETARCH"; \
PAYMENT_PLUGIN_GOOS="$TARGETOS" \
PAYMENT_PLUGIN_GOARCH="$TARGETARCH" \
PAYMENT_PLUGIN_CGO_ENABLED=0 \
./plugin-packages/build-packages.sh --payments-only; \
sh ./plugin-packages/verify-payment-packages.sh "$TARGETOS" "$TARGETARCH"
FROM --platform=$TARGETPLATFORM alpine:3.22 AS payment-package-smoke
ARG TARGETOS
ARG TARGETARCH
RUN apk add --no-cache unzip
COPY --from=payment-package-build /src/plugin-packages /app/plugin-packages
RUN PAYMENT_PLUGIN_SMOKE_TEST=1 \
sh /app/plugin-packages/verify-payment-packages.sh "$TARGETOS" "$TARGETARCH"
FROM golang:1.25-alpine AS backend-build
ARG GOPROXY=https://proxy.golang.org,direct
@@ -37,7 +74,7 @@ RUN mkdir -p /data && chown -R app:app /data
COPY --from=backend-build /out/infinite-canvas-backend /usr/local/bin/infinite-canvas-backend
COPY --from=backend-build /out/migrate-schema /usr/local/bin/migrate-schema
COPY --from=backend-build /out/migrate-sqlite-postgres /usr/local/bin/migrate-sqlite-postgres
COPY plugin-packages /app/plugin-packages
COPY --from=payment-package-smoke /app/plugin-packages /app/plugin-packages
USER app
EXPOSE 8080