Files
yushanhe 48b630c951
designops-gateway / build (push) Failing after 1m11s
feat: add core unit tests, review UI, Dockerfile and Helm chart
- 7 unit tests (op-to-svg/config/dtcg) pass via node --test
- review page: comment form + asset preview; assets route MIME by kind
- gateway Dockerfile (node:24-alpine multi-stage + op binary)
- Helm chart (deployment/service/ingress/pvc + secret injection)
2026-09-27 22:44:00 +08:00

28 lines
924 B
Docker

# @module: gateway-dockerfile
# @path: gateway/Dockerfile
# @description: DesignOps Gateway 镜像构建(Node 24 + 编译产物 + OpenPencil 二进制)
# @zone: action
# @tier: Tier2-support
#
# @skill: gateway-docker-build — build gateway image with OpenPencil headless CLI
# @rule: credentials-not-in-repo P0 — secrets injected at runtime, never baked
FROM node:24-alpine AS build
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY tsconfig.json ./
COPY src ./src
RUN pnpm build
FROM node:24-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile --prod
COPY --from=build /app/dist ./dist
# OpenPencil headless CLI (编译产物,由 CI 阶段注入,见 infra/gitops)
COPY op /usr/local/bin/op
RUN mkdir -p /data /assets
EXPOSE 8080
CMD ["node", "dist/index.js"]