# syntax=docker/dockerfile:1.7 FROM node:22-bookworm@sha256:cd7bcd2e7a1e6f72052feb023c7f6b722205d3fcab7bbcbd2d1bfdab10b1e935 RUN corepack enable WORKDIR /app ENV NODE_OPTIONS="--disable-warning=ExperimentalWarning" COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY ui/package.json ./ui/package.json COPY extensions/memory-core/package.json ./extensions/memory-core/package.json COPY patches ./patches RUN --mount=type=cache,id=openclaw-pnpm-store,target=/root/.local/share/pnpm/store,sharing=locked \ pnpm install --frozen-lockfile COPY tsconfig.json tsconfig.plugin-sdk.dts.json tsdown.config.ts vitest.config.ts vitest.e2e.config.ts openclaw.mjs ./ COPY src ./src COPY test ./test COPY scripts ./scripts COPY docs ./docs COPY skills ./skills COPY ui ./ui COPY extensions/memory-core ./extensions/memory-core COPY vendor/a2ui/renderers/lit ./vendor/a2ui/renderers/lit COPY apps/shared/OpenClawKit/Sources/OpenClawKit/Resources ./apps/shared/OpenClawKit/Sources/OpenClawKit/Resources COPY apps/shared/OpenClawKit/Tools/CanvasA2UI ./apps/shared/OpenClawKit/Tools/CanvasA2UI RUN pnpm build RUN pnpm ui:build RUN useradd --create-home --shell /bin/bash appuser \ && chown -R appuser:appuser /app USER appuser CMD ["bash"]