VERA cleanup (FPLAN-0410): - Remove all /home/aipass hardcoded paths (portability) - Remove internal Telegram bot code from public repo (6k+ lines) - Remove runtime logs, .claude/settings.local.json, stale files - Clean READMEs across all branches - Restructure spawn handlers into proper 3-layer architecture - Add __init__.py files for proper package imports - Update seedgo standards for public repo context - Add log_structure standard to seedgo Integration test bug fixes: - Fix double @@ display in drone introspection output - Fix spawn registry resolving to wrong file (walk up from package root) - Fix email sender identity always showing as @ai_mail (pass AIPASS_CALLER_CWD) - Fix branch_detection.py relative path resolution against CWD instead of registry dir - Add .trinity/passport.json detection for spawned agents - Archive duplicate json_ops.py, update imports to canonical json_handler - Update .gitignore for runtime logs and .claude/ dirs Tested end-to-end in Docker container (aipass-test:latest): - Spawn → register → send email → receive → reply all verified working Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
1.2 KiB
Docker
38 lines
1.2 KiB
Docker
FROM codercom/code-server:latest
|
|
|
|
USER root
|
|
|
|
# Install Python + Node.js (for Claude Code)
|
|
RUN apt-get update && apt-get install -y \
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
python3-full \
|
|
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Claude Code globally
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Create venv owned by coder user (UID 1000)
|
|
RUN python3 -m venv /opt/venv \
|
|
&& chown -R 1000:1000 /opt/venv
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
|
|
# Startup script in /etc so it's NOT shadowed by /home/coder bind mount
|
|
RUN mkdir -p /etc/entrypoint.d
|
|
COPY setup-workspace.sh /etc/entrypoint.d/setup-workspace.sh
|
|
RUN chmod +x /etc/entrypoint.d/setup-workspace.sh
|
|
|
|
# Override ENTRYPOINTD to our non-shadowed location
|
|
ENV ENTRYPOINTD=/etc/entrypoint.d
|
|
|
|
USER 1000
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
|
|
EXPOSE 8080
|
|
# Use the official entrypoint (already in the base image at /usr/bin/entrypoint.sh)
|
|
# It runs fixuid -> entrypoint.d scripts -> dumb-init code-server
|
|
ENTRYPOINT ["/usr/bin/entrypoint.sh", "--bind-addr", "0.0.0.0:8080", "--auth", "none", "/home/coder/workspace/AIPass"]
|