Files
APAW/docker/Dockerfile.architect-indexer
¨NW¨ 6b71ea2b57 feat: add .architect/ project mapping system with architect-indexer agent and Docker containerization
- Add .architect/ directory structure (10 template files) as project brain for agent orientation
- Add architect-indexer agent that scans codebase and generates structured architecture docs
- Add Docker containerization: Dockerfile.architect-indexer, docker-compose.architect.yml
- Add TypeScript project-mapper module with staleness detection and context injection
- Add /index-project command, architect-first-contact rule, project-mapping skill
- Integrate orchestrator first-contact check: triggers indexing before any task delegation
- Add npm arch:* scripts for Docker-based indexing workflow
- Register agent in capability-index.yaml and AGENTS.md
2026-04-22 20:01:38 +01:00

63 lines
2.1 KiB
Docker

# Architect Indexer Dockerfile
# Scans target project codebase and generates .architect/ directory
#
# Usage:
# docker compose -f docker/docker-compose.architect.yml build
# docker compose -f docker/docker-compose.architect.yml run --rm architect-indexer
# docker compose -f docker/docker-compose.architect.yml run --rm architect-indexer --mode incremental
# ── Build stage ────────────────────────────────────────────────────
FROM oven/bun:1-alpine AS builder
WORKDIR /build
# Copy dependency files first (cache layer)
COPY package.json ./
# bun.lock might not exist; handle gracefully
COPY bun.lock* ./
# Install dependencies
RUN bun install 2>/dev/null || npm install 2>/dev/null || true
# Copy source for build
COPY tsconfig.json ./
COPY src/ ./src/
# Build TypeScript
RUN bun run build 2>/dev/null || npx tsc 2>/dev/null || true
# ── Production stage ────────────────────────────────────────────────
FROM node:20-alpine AS production
WORKDIR /app
# Security: non-root user
RUN addgroup -S apaw && adduser -S apaw -G apaw
# Copy built artifacts
COPY --from=builder /build/dist/ ./dist/
COPY --from=builder /build/node_modules/ ./node_modules/
COPY --from=builder /build/package.json ./
# Copy .kilo configs for agent context
COPY .kilo/agents/architect-indexer.md ./agents/architect-indexer.md
COPY .kilo/skills/project-mapping/ ./skills/project-mapping/
COPY .kilo/rules/ ./rules/
# Ensure .architect template directory exists
COPY .architect/ /template/.architect/
# Default project mount point
ENV PROJECT_ROOT=/project
ENV NODE_ENV=production
ENV TZ=UTC
# Healthcheck: verify .architect/ was generated
HEALTHCHECK --interval=60s --timeout=15s --start-period=10s --retries=2 \
CMD test -d /project/.architect || exit 1
USER apaw
# Run the indexer script (compiled from TypeScript)
ENTRYPOINT ["node", "dist/kilocode/scripts/run-architect-indexer.js"]
CMD ["--target", "/project"]