• Stefy Lanza (nextime / spora )'s avatar
    runpod: make the capability images actually buildable, and cheap to ship · 8990bab3
    Stefy Lanza (nextime / spora ) authored
    Three fixes the first real build exposed.
    
    The import check caught what a lazy-import survey had missed: app.py
    mounts every router, and a few touch libraries at module level rather
    than lazily — soundfile (voice_convert), cv2/PIL (faceswap), litellm
    (parser), websockets (broker client). A static walk of the import graph
    from codai.api.app found the full set; they are now in core.txt with a
    note saying why. torch and transformers are NOT among them, so they stay
    per-profile.
    
    torch moved into core so it becomes ONE shared layer. Nine images each
    building their own copy would duplicate ~5 GB nine times — on disk and on
    every push. Core is now its own RUN, identical across profiles, so all
    nine share it.
    
    A BuildKit pip cache mount means building all nine downloads torch once
    rather than nine times, which matters when the link is also pulling
    models.
    
    build_all_capability_images.sh drives the set. Sequential on purpose:
    they share the cache and the core layer, so parallel builds would race on
    both. Each image must answer /healthz before the next starts.
    
    Validated: coderai-embeddings built, imported and answered /healthz
    (7259 MB) before this restructuring.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_0182DhR1eFNPQyGmDrpHbedY
    8990bab3
tts.txt 117 Bytes