From 93b64fc7dd22265f3c039706734e0ab1108c310f Mon Sep 17 00:00:00 2001 From: Max Richter Date: Tue, 20 Jan 2026 18:50:54 +0100 Subject: [PATCH] feat: add app/Dockerfile --- app/Dockerfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/Dockerfile diff --git a/app/Dockerfile b/app/Dockerfile new file mode 100644 index 0000000..756b976 --- /dev/null +++ b/app/Dockerfile @@ -0,0 +1,54 @@ +FROM node:24-alpine AS builder + +# Install system dependencies +RUN apk add --no-cache curl g++ gcc make libc-dev + +ENV RUSTUP_HOME=/usr/local/rustup \ + CARGO_HOME=/usr/local/cargo \ + PATH=/usr/local/cargo/bin:$PATH + +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal \ + && rustup target add wasm32-unknown-unknown + +WORKDIR /app + +COPY pnpm-lock.yaml pnpm-workspace.yaml package.json Cargo.lock Cargo.toml ./ + +COPY packages/ ./packages/ +COPY nodes/ ./nodes/ +COPY app/package.json ./app/ + +RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ + --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + npm install -g pnpm@latest && \ + pnpm install --frozen-lockfile + +COPY . . + +RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ + --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + pnpm build:nodes && \ + pnpm --filter @nodarium/app... build + +FROM nginx:alpine AS runner + +RUN rm /etc/nginx/conf.d/default.conf + +COPY <