FROM node:22-alpine AS frontend-builder WORKDIR /app RUN corepack enable && corepack prepare pnpm@latest --activate COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --frozen-lockfile COPY . . RUN pnpm run build FROM rust:1.87-alpine AS backend-builder RUN apk add --no-cache musl-dev WORKDIR /app COPY src-tauri/Cargo.toml src-tauri/Cargo.lock ./ COPY src-tauri/src ./src COPY src-tauri/build.rs ./ RUN cargo build --release --bin addmon-server --features server --no-default-features FROM alpine:3.20 RUN apk add --no-cache ca-certificates WORKDIR /app COPY --from=backend-builder /app/target/release/addmon-server /app/addmon-server COPY --from=frontend-builder /app/dist /app/dist ENV PORT=3000 EXPOSE 3000 CMD ["/app/addmon-server"]