43 lines
694 B
Docker
43 lines
694 B
Docker
FROM golang:1.24-alpine AS wasm_builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY main.go ./
|
|
RUN GOOS="js" GOARCH="wasm" go build -o main.wasm
|
|
|
|
RUN cp "$(go env GOROOT)/lib/wasm/wasm_exec.js" ./
|
|
|
|
FROM node:22-alpine AS deps
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
|
|
FROM node:22-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=wasm_builder /app/main.wasm ./public/main.wasm
|
|
COPY --from=wasm_builder /app/wasm_exec.js ./src/wasm_exec.js
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
|
|
FROM node:22-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/dist ./dist
|
|
|
|
RUN npm i -g serve
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD [ "serve", "-s", "dist" ]
|