Files
agent-helm/Dockerfile
Bjorn Blomberg c3972d76df
All checks were successful
build-and-push / build (push) Successful in 39s
Fixa Docker-bygge: kopiera in tsconfig.base.json (web/server extends den)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:46:39 +02:00

41 lines
1.4 KiB
Docker

# syntax=docker/dockerfile:1
#
# agent-helm control-plane + web-UI i en enda image.
# Byggs av Gitea Actions PÅ Pi5 (arm64) och pushas till localhost:5000.
# Servern serverar den byggda Vue-frontenden statiskt + WebSocket på samma port.
# ---------- builder ----------
FROM node:22-slim AS builder
WORKDIR /app
RUN npm install -g pnpm@11.3.0
# Installera bara det server + web behöver. "..."-suffixet tar med workspace-
# beroenden (shared) men UTESLUTER daemon -> ingen node-pty-kompilering här.
COPY pnpm-workspace.yaml package.json pnpm-lock.yaml .npmrc tsconfig.base.json ./
COPY packages/shared/package.json ./packages/shared/
COPY packages/server/package.json ./packages/server/
COPY packages/web/package.json ./packages/web/
COPY packages/daemon/package.json ./packages/daemon/
RUN pnpm install --frozen-lockfile \
--filter "@agent-helm/server..." \
--filter "@agent-helm/web..."
# Källkod + bygg (web -> dist, server -> en bundlad cjs-fil)
COPY packages/shared ./packages/shared
COPY packages/server ./packages/server
COPY packages/web ./packages/web
RUN pnpm --filter @agent-helm/web build \
&& pnpm --filter @agent-helm/server bundle
# ---------- runtime ----------
FROM node:22-slim AS runtime
WORKDIR /app
ENV NODE_ENV=production \
PORT=8787 \
WEB_DIST=/app/web
COPY --from=builder /app/packages/server/dist/server.cjs ./server.cjs
COPY --from=builder /app/packages/web/dist ./web
EXPOSE 8787
USER node
CMD ["node", "server.cjs"]