Files
watch_sceen_ai/Dockerfile
EJClaw 3d76cd6c52 fix(docker): run official bot (dave/bot.mjs) in container, not selfbot join.mjs
The `join` entrypoint command now execs `node dave/bot.mjs` and forwards args;
Dockerfile comments/env notes updated from DISCORD_SELFBOT_TOKEN to the official
bot path. Rebuilt watch_sceen_ai:test on .9 and verified in-container:
  * smoke -> 4 passed
  * voice -> eyes-free mock loop runs
  * join  -> LIVE bot join (테스트봇#9029) to guild 사지방 / channel 일반, Ready, clean leave

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-08-16 18:36:24 +09:00

47 lines
1.9 KiB
Docker

# watch_sceen_ai — GPU-ready test image for the .9 host (RTX 5050).
#
# Bundles everything the current M1 milestone needs:
# * CUDA runtime (so future faster-whisper / TTS can use the GPU)
# * Python 3.11 (STT/TTS asset compat per README) for the wsai voice pipeline
# * Node 22 + ffmpeg for the dave/ official-bot voice joiner (DAVE/MLS E2EE)
#
# STT/TTS/Brain are still mock at this milestone, so nothing GPU-heavy runs yet;
# the image is built GPU-capable so the next milestones drop straight in.
FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1
# --- system deps: python 3.11, node 22, ffmpeg -----------------------------
RUN apt-get update && apt-get install -y --no-install-recommends \
software-properties-common ca-certificates curl gnupg ffmpeg \
&& add-apt-repository -y ppa:deadsnakes/ppa \
&& apt-get update && apt-get install -y --no-install-recommends \
python3.11 python3.11-venv python3.11-dev \
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& ln -sf /usr/bin/python3.11 /usr/local/bin/python \
&& python -m ensurepip --upgrade \
&& python -m pip install --no-cache-dir --upgrade pip pytest \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# --- dave/ node deps (cached layer) ----------------------------------------
COPY dave/package.json dave/package-lock.json ./dave/
RUN cd dave && npm ci
# --- app source ------------------------------------------------------------
COPY wsai ./wsai
COPY tests ./tests
COPY dave ./dave
COPY requirements.txt PLAN.md README.md ./
COPY docker-entrypoint.sh /usr/local/bin/entrypoint
RUN chmod +x /usr/local/bin/entrypoint
# .env (DISCORD_BOT_TOKEN) is NOT baked in — mount it at runtime:
# -v $(pwd)/.env:/app/.env:ro
ENTRYPOINT ["entrypoint"]
CMD ["smoke"]