- replace git and curl with python3-full package for dependencies - create python virtualenv owned by user 1000 for permission consistency - add entrypoint scripts in /etc/entrypoint.d to avoid shadowing by bind mounts - override ENTRYPOINTD environment variable to use non-shadowed entrypoint scripts - switch to user 1000 instead of coder user for container runtime - use official base image entrypoint with fixuid and dumb-init for process management - set default code-server workspace to /home/coder/workspace for consistency 📝 docs(readme): overhaul README to reflect current state and usage - simplify introduction with focus on core AIPass features and status - update quick start instructions for source install and basic commands - add Docker usage example for isolated testing with VS Code - provide core concepts for drone command router and seedgo standards - rewrite seedgo plugin example and built-in plugin list with formatting - remove old API examples and deprecated instructions - add module architecture and status table for all 10 modules - clarify configuration and environment variable usage - update requirements and license sections for clarity 📦 build(scripts): add setup-workspace.sh for container initialization - script ensures workspace directory is writable by coder user - clones AIPass repo if not already present in workspace - installs AIPass in editable mode to keep dependencies up to date - designed to run as container entrypoint.d script for first boot setup
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"]
|