完成Web ASM

This commit is contained in:
Misaki
2026-06-08 22:09:35 +08:00
parent e565b80bc2
commit 36660519c1
28 changed files with 1148 additions and 178 deletions
+30
View File
@@ -0,0 +1,30 @@
FROM node:20-alpine AS frontend
WORKDIR /app/web
COPY web/package.json ./
RUN npm install
COPY web/ ./
RUN npm run build
FROM golang:1.23-alpine AS wasm
WORKDIR /app
COPY go.mod ./
RUN go mod download
COPY . .
RUN GOOS=js GOARCH=wasm go build -o web/public/ncmdump.wasm ./cmd/wasm
RUN cp "$(go env GOROOT)/lib/wasm/wasm_exec.js" web/public/
FROM golang:1.23-alpine AS backend
WORKDIR /app
COPY go.mod ./
RUN go mod download
COPY . .
COPY --from=frontend /app/cmd/server/static/dist ./cmd/server/static/dist
COPY --from=wasm /app/web/public/ncmdump.wasm ./cmd/server/static/dist/ncmdump.wasm
COPY --from=wasm /app/web/public/wasm_exec.js ./cmd/server/static/dist/wasm_exec.js
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o /app/server ./cmd/server
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
COPY --from=backend /app/server /usr/local/bin/ncmdump-server
EXPOSE 8080
ENTRYPOINT ["ncmdump-server"]