addmon/apps/web/Dockerfile

31 lines
751 B
Docker

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"]