refactor(docker): install from npm instead of building from source
This commit is contained in:
+4
-33
@@ -1,39 +1,10 @@
|
|||||||
FROM node:lts-trixie-slim AS base
|
FROM node:lts-trixie-slim
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends ca-certificates curl git \
|
&& apt-get install -y --no-install-recommends ca-certificates curl git \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
RUN corepack enable
|
|
||||||
|
|
||||||
FROM base AS deps
|
RUN npm install --global paperclipai@latest @anthropic-ai/claude-code@latest @openai/codex@latest opencode-ai \
|
||||||
WORKDIR /app
|
|
||||||
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml .npmrc ./
|
|
||||||
COPY cli/package.json cli/
|
|
||||||
COPY server/package.json server/
|
|
||||||
COPY ui/package.json ui/
|
|
||||||
COPY packages/shared/package.json packages/shared/
|
|
||||||
COPY packages/db/package.json packages/db/
|
|
||||||
COPY packages/adapter-utils/package.json packages/adapter-utils/
|
|
||||||
COPY packages/adapters/claude-local/package.json packages/adapters/claude-local/
|
|
||||||
COPY packages/adapters/codex-local/package.json packages/adapters/codex-local/
|
|
||||||
COPY packages/adapters/cursor-local/package.json packages/adapters/cursor-local/
|
|
||||||
COPY packages/adapters/openclaw-gateway/package.json packages/adapters/openclaw-gateway/
|
|
||||||
COPY packages/adapters/opencode-local/package.json packages/adapters/opencode-local/
|
|
||||||
COPY packages/adapters/pi-local/package.json packages/adapters/pi-local/
|
|
||||||
|
|
||||||
RUN pnpm install --no-frozen-lockfile
|
|
||||||
|
|
||||||
FROM base AS build
|
|
||||||
WORKDIR /app
|
|
||||||
COPY --from=deps /app /app
|
|
||||||
COPY . .
|
|
||||||
RUN pnpm --filter @paperclipai/ui build
|
|
||||||
RUN pnpm --filter @paperclipai/server build
|
|
||||||
RUN test -f server/dist/index.js || (echo "ERROR: server build output missing" && exit 1)
|
|
||||||
|
|
||||||
FROM base AS production
|
|
||||||
WORKDIR /app
|
|
||||||
COPY --chown=node:node --from=build /app /app
|
|
||||||
RUN npm install --global --omit=dev @anthropic-ai/claude-code@latest @openai/codex@latest opencode-ai \
|
|
||||||
&& mkdir -p /paperclip \
|
&& mkdir -p /paperclip \
|
||||||
&& chown node:node /paperclip
|
&& chown node:node /paperclip
|
||||||
|
|
||||||
@@ -52,4 +23,4 @@ VOLUME ["/paperclip"]
|
|||||||
EXPOSE 3100
|
EXPOSE 3100
|
||||||
|
|
||||||
USER node
|
USER node
|
||||||
CMD ["node", "--import", "./server/node_modules/tsx/dist/loader.mjs", "server/dist/index.js"]
|
CMD ["paperclipai", "start"]
|
||||||
|
|||||||
Reference in New Issue
Block a user