mirror of
https://github.com/saltbo/zpan.git
synced 2026-08-29 00:01:42 +08:00
310e4950b3
Replace pnpm workspace monorepo (packages/server, packages/web, packages/shared) with a flat single-package layout following Hono's pages-stack pattern. Switch from pnpm to npm and from Workers+Assets to CF Pages Functions deployment model. - Move source: packages/server/src/ → server/, packages/web/src/ → src/, packages/shared/src/ → shared/ - Add functions/api/[[route]].ts as CF Pages Functions entry (replaces entry-cloudflare.ts) - Update 22 import paths: server uses relative, web uses @shared/@server aliases - Merge three package.json into one, switch to npm - Update wrangler.toml: remove main/assets (Pages auto-detects functions/ dir) - Add per-directory tsconfig.json for VS Code type resolution - Simplify Dockerfile for flat layout - Fix react-pdf CSS import path (dist/esm/ → dist/) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
38 lines
753 B
Docker
38 lines
753 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
# -- Stage 1: install deps (cached until lockfile changes) --
|
|
FROM node:20-slim AS deps
|
|
WORKDIR /app
|
|
|
|
COPY package-lock.json package.json ./
|
|
RUN npm ci
|
|
|
|
# -- Stage 2: build --
|
|
FROM deps AS builder
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
RUN npm run build:server
|
|
|
|
# -- Stage 3: runtime --
|
|
FROM node:20-slim
|
|
|
|
RUN addgroup --system zpan && adduser --system --ingroup zpan zpan
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/dist ./dist
|
|
COPY --from=builder /app/dist-server ./dist-server
|
|
COPY --from=builder /app/node_modules ./node_modules
|
|
COPY --from=builder /app/package.json ./package.json
|
|
|
|
RUN mkdir -p /data && chown zpan:zpan /data
|
|
|
|
USER zpan
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=8222
|
|
EXPOSE 8222
|
|
|
|
CMD ["node", "dist-server/entry-node.js"]
|