# 打包前端 FROM node:18-alpine AS build-front WORKDIR /front COPY . . WORKDIR ./web RUN corepack enable RUN corepack prepare pnpm@8.6.10 --activate RUN npm config set registry https://registry.npmmirror.com RUN pnpm install RUN pnpm build RUN ls -lh && pwd # 前后端集成打包 FROM golang:alpine AS build-backend RUN apk add upx WORKDIR /build COPY . . COPY --from=build-front /front/web/dist/ /build/dist # sqlite必须 ENV GO111MODULE=on ENV GOPROXY=https://goproxy.cn,direct RUN go build -ldflags="-s -w" -o wgui && upx -9 wgui RUN ls -lh && chmod +x ./wgui FROM alpine RUN addgroup -S wgui && \ adduser -S -D -G wgui wgui ENV GIN_MODE=release RUN apk --no-cache add ca-certificates wireguard-tools jq iptables WORKDIR /app RUN mkdir -p db COPY --from=build-backend --chown=wgui:wgui /build/wgui /app COPY --from=build-backend /build/template/* /app/template/ RUN chmod +x wgui ENTRYPOINT ["./wgui","http:serve"]