Files
Phantom/docker/Dockerfile.architect-indexer
NW 863a67db8e config: full APAW agent infrastructure + Phantom project files
- 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
2026-05-18 17:53:59 +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"]