Working-in-a-Codemine / Dockerfile
Executor-Tyrant-Framework's picture
fix: add ng_topology_sync.py to Dockerfile COPY list (Space startup crash)
081db53
# Dockerfile for TQB Worker on HuggingFace Spaces
#
# CHANGELOG [2025-01-30 - Josh]
# REBUILD: Updated to Gradio 5.0+ for type="messages" support
#
# CHANGELOG [2025-01-31 - Claude]
# FIXED: Permissions for HF Spaces runtime user (UID 1000).
#
# CHANGELOG [2025-01-31 - Claude + Gemini]
# FIXED: /.cache PermissionError for embedding model download.
#
# CHANGELOG [2026-03-29 - Hammer/TQB — Block G Assembly]
# UPDATED: Added tools/ directory, new module files, anthropic SDK.
# Swapped from Kimi K2.5 to Claude. Added ANTHROPIC_API_KEY and CLAUDE_MODEL_ID env vars.
# Added /data/ persistent directory for worker NeuroGraph.
FROM python:3.11-slim
# CACHE BUSTER: Update this date to invalidate Docker cache
ENV REBUILD_DATE=2026-04-05-chassis-dialin
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
build-essential \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements first (for Docker layer caching)
COPY requirements.txt .
# Install Python dependencies
RUN pip uninstall -y gradio gradio-client 2>/dev/null; \
pip install --no-cache-dir -r requirements.txt
# Create all directories the app needs to write to at runtime
RUN mkdir -p /workspace/e-t-systems \
/tmp/.cache/huggingface \
/tmp/.cache/torch \
/tmp/.neurograph/checkpoints \
/data/neurograph_worker/checkpoints \
/data/audit
# =============================================================================
# ENVIRONMENT VARIABLES
# =============================================================================
ENV HF_HOME=/tmp/.cache/huggingface
ENV XDG_CACHE_HOME=/tmp/.cache
ENV TORCH_HOME=/tmp/.cache/torch
ENV NEUROGRAPH_WORKSPACE_DIR=/data/neurograph_worker
ENV HOME=/tmp
ENV PYTHONUNBUFFERED=1
ENV REPO_PATH=/workspace/e-t-systems
# Copy application files
COPY recursive_context.py .
COPY app.py .
COPY entrypoint.sh .
COPY neuro_foundation.py .
COPY universal_ingestor.py .
COPY openclaw_hook.py .
COPY neurograph_migrate.py .
COPY policy_engine.py .
COPY model_client.py .
COPY system_prompt.py .
COPY tool_definitions.py .
COPY worker_ng.py .
COPY ng_embed.py .
COPY work_block_schema.py .
COPY spec_executor.py .
COPY persona_client.py .
COPY report_evaluator.py .
COPY risk_authority.py .
COPY spec_generator.py .
COPY orchestrator.py .
COPY ng_topology_sync.py .
# Copy tools directory
COPY tools/ ./tools/
# =============================================================================
# PERMISSIONS FOR HF SPACES (UID 1000)
# =============================================================================
RUN chmod +x entrypoint.sh && \
chown -R 1000:1000 /app /workspace /tmp/.cache /tmp/.neurograph /data
# Expose Gradio port (HF Spaces standard)
EXPOSE 7860
# Switch to non-root user
USER 1000
# Launch via entrypoint script
CMD ["./entrypoint.sh"]