Files
AIPass/Dockerfile
T
AIOSAIandClaude Opus 4.6 3b45824dc6 FPLAN-0410 repo cleanup + integration test bug fixes
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>
2026-03-06 15:29:16 -08:00

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"]