autojanet/container/Dockerfile
Zoë cc74ad0bd0
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: use library/ Harbor project, add skills, fix pipeline secrets
- .woodpecker.yaml: image paths -> library/autojanet-{agent,dispatcher}
- .woodpecker.yaml: secret names RS_HARBOR_USER / RS_HARBOR_PASS (global)
- container/Dockerfile: restore COPY skills/, skills/ populated from opencode config
- skills/: 84 opencode skills bundled into image
- k8s/manifests: update image refs to library/
2026-05-30 15:43:14 -07:00

75 lines
2.2 KiB
Docker

# AutoJanet Agent Container
#
# Single image used for all 19 agent roles.
# Role is determined at runtime via AGENT_ROLE env var.
#
# Build:
# docker build -t registry.ctz.fyi/library/autojanet-agent:latest .
#
# The image bundles:
# - opencode CLI (Node.js)
# - Python entrypoint + dependencies
# - All 19 agent .md files
# - Common tools: git, curl, kubectl, helm
FROM node:22-bookworm-slim AS opencode-builder
# Install opencode globally
RUN npm install -g opencode-ai@latest
# ── Final image ───────────────────────────────────────────────────────────────
FROM debian:bookworm-slim
ARG KUBECTL_VERSION=v1.31.0
ARG HELM_VERSION=v3.16.0
# System deps
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
git \
python3 \
python3-pip \
python3-venv \
jq \
&& rm -rf /var/lib/apt/lists/*
# kubectl
RUN curl -fsSL "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \
-o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl
# helm
RUN curl -fsSL "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" \
| tar -xz -C /usr/local/bin --strip-components=1 linux-amd64/helm
# Copy opencode from builder
COPY --from=opencode-builder /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=opencode-builder /usr/local/bin/node /usr/local/bin/node
RUN ln -sf /usr/local/lib/node_modules/opencode-ai/cli.js /usr/local/bin/opencode && \
chmod +x /usr/local/bin/opencode
# Create agent user
RUN useradd -m -u 1000 -s /bin/bash agent
WORKDIR /app
# Python deps
COPY container/requirements.txt /app/requirements.txt
RUN python3 -m venv /app/venv && \
/app/venv/bin/pip install --no-cache-dir -r /app/requirements.txt
# Agent entrypoint
COPY container/entrypoint.py /app/entrypoint.py
# All agent definition files
COPY agents/ /app/agents/
# Skills from ~/.config/opencode/skills — copied into repo at skills/
COPY skills/ /app/skills/
USER agent
ENV PATH="/app/venv/bin:$PATH"
ENV HOME="/home/agent"
ENTRYPOINT ["python3", "/app/entrypoint.py"]