FROM python:3.11-slim # Install Node.js 20 + build tools + nginx RUN apt-get update && apt-get install -y \ curl gnupg git nginx \ make g++ python3-dev \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs \ && rm -rf /var/lib/apt/lists/* # ── Install agentscope-studio from npm ──────────────────────────────────────── RUN npm install -g @agentscope/studio # ── Install Python backend ───────────────────────────────────────────────────── WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # ── Copy app code ────────────────────────────────────────────────────────────── COPY backend/ ./backend/ COPY frontend/ ./frontend/ COPY entrypoint.sh . RUN chmod +x entrypoint.sh # HF Spaces: non-root user 1000 RUN useradd -m -u 1000 user \ && chown -R user /app \ && chown -R user /var/log/nginx \ && chown -R user /var/lib/nginx \ && chown -R user /etc/nginx \ && touch /run/nginx.pid \ && chown user /run/nginx.pid USER user EXPOSE 7860 ENTRYPOINT ["./entrypoint.sh"]