- Added all agent definitions (.kile/agents/*.md) - Added commands, rules, skills, shared modules - Added src/, scripts/, tests/, docker/, agent-evolution/ - Extracted 3 archives: website/, workspace/, release/ - Created .env with Gitea creds for UniqueSoft/Phantom - Created docs/ with project-specific guides - Added .gitignore for node_modules
63 lines
2.1 KiB
Docker
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"] |