- deploy/k3s удалён, deploy/docker добавлен (Caddyfile, docker-compose, searxng) - chat-svc: agents/models/prompts удалены, использует llm-svc (LLMClient, EmbeddingClient) - master-agents-svc: SearchOrchestrator, classifier, researcher, actions, widgets - web-svc: ChatModelSelector, Optimization, Sources удалены; InputBarPlus; UnregisterSW - geo-device-svc, localization-svc: Dockerfiles - docs: 02-k3s-services-spec.md, RUNBOOK/TELEMETRY/WORKING удалены Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
1.1 KiB
Docker
30 lines
1.1 KiB
Docker
# syntax=docker/dockerfile:1
|
||
# web-svc — Next.js UI, standalone output
|
||
FROM node:22-alpine AS builder
|
||
WORKDIR /app
|
||
COPY package.json package-lock.json ./
|
||
COPY services ./services
|
||
# npm cache — ускоряет npm ci, НЕ трогает билд
|
||
RUN --mount=type=cache,target=/root/.npm \
|
||
npm ci
|
||
ENV NEXT_TELEMETRY_DISABLED=1
|
||
ARG API_GATEWAY_URL=http://api-gateway.gooseek:3015
|
||
ENV API_GATEWAY_URL=${API_GATEWAY_URL}
|
||
# БЕЗ cache для .next — иначе старый билд попадает в прод
|
||
RUN npm run build -w web-svc
|
||
|
||
FROM node:22-alpine AS runner
|
||
WORKDIR /app
|
||
ENV NODE_ENV=production
|
||
ENV NEXT_TELEMETRY_DISABLED=1
|
||
RUN addgroup --system --gid 1001 nodejs
|
||
RUN adduser --system --uid 1001 nextjs
|
||
COPY --from=builder /app/services/web-svc/public ./services/web-svc/public
|
||
COPY --from=builder --chown=nextjs:nodejs /app/services/web-svc/.next/standalone ./
|
||
COPY --from=builder --chown=nextjs:nodejs /app/services/web-svc/.next/static ./services/web-svc/.next/static
|
||
USER nextjs
|
||
EXPOSE 3000
|
||
ENV PORT=3000
|
||
ENV HOSTNAME="0.0.0.0"
|
||
CMD ["node", "services/web-svc/server.js"]
|