microsoft--agent-lightning
85742ab165
Deploy Documentation / deploy (push) Has been cancelled
CPU Test / Test (Utilities, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (LLM proxy, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Others, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Store, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Utilities, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Weave, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (AgentOps, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (LLM proxy, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Others, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Weave, latest, Python 3.13) (push) Has been cancelled
Dashboard / Chromatic (push) Has been cancelled
CPU Test / Lint - fast (push) Has been cancelled
CPU Test / Lint - next (push) Has been cancelled
CPU Test / Lint - slow (push) Has been cancelled
CPU Test / Lint - JavaScript (push) Has been cancelled
CPU Test / Build documentation (push) Has been cancelled
CPU Test / Test (AgentOps, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (LLM proxy, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Others, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Store, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Weave, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (AgentOps, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Store, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Utilities, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Weave, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (AgentOps, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (LLM proxy, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Others, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Store, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Utilities, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (JavaScript) (push) Has been cancelled
146 行
5.6 KiB
Docker
146 行
5.6 KiB
Docker
# Unified WebShop Training Image
|
|
#
|
|
# This Dockerfile creates a single image containing all components needed for
|
|
# the WebShop training pipeline:
|
|
# - WebShop Flask server (Python + Java for pyserini)
|
|
# - Agent Lightning coordinator (Python + optional VERL for GPU)
|
|
# - Headless runner (Node.js + pnpm)
|
|
#
|
|
# Build context must be the repository root:
|
|
# docker build -f examples/vercel_ai_webshop/Dockerfile -t webshop-agl .
|
|
#
|
|
# For GPU training:
|
|
# docker build -f examples/vercel_ai_webshop/Dockerfile --build-arg INSTALL_GPU=true -t webshop-agl-gpu .
|
|
#
|
|
# Run modes:
|
|
# - Full stack: docker run webshop-agl scripts/run_stack.sh qwen
|
|
# - WebShop only: docker run webshop-agl python server/webshop_server.py
|
|
# - Runner only: docker run webshop-agl pnpm headless
|
|
|
|
# Base image with CUDA support for GPU training
|
|
FROM mcr.microsoft.com/azureml/openmpi5.0-cuda12.4-ubuntu22.04:latest
|
|
|
|
# Build argument for GPU support
|
|
ARG INSTALL_GPU=false
|
|
|
|
# Environment variables
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
DEBIAN_FRONTEND=noninteractive \
|
|
JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64 \
|
|
PATH="/usr/lib/jvm/temurin-21-jdk-amd64/bin:${PATH}"
|
|
|
|
WORKDIR /app
|
|
|
|
# ==============================================================================
|
|
# System Dependencies
|
|
# ==============================================================================
|
|
|
|
# Install system packages:
|
|
# - Java 21 (Temurin) for pyserini search engine
|
|
# - Node.js 20 for headless runner
|
|
# - Git, curl, wget for general utilities
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
git curl wget gnupg ca-certificates procps \
|
|
# Add Adoptium (Temurin) repository for Java 21
|
|
&& mkdir -p /etc/apt/keyrings \
|
|
&& wget -qO- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/keyrings/adoptium.gpg \
|
|
&& echo "deb [signed-by=/etc/apt/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main" > /etc/apt/sources.list.d/adoptium.list \
|
|
# Add NodeSource repository for Node.js 20
|
|
&& curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
temurin-21-jdk \
|
|
nodejs \
|
|
# Install pnpm globally
|
|
&& npm install -g pnpm \
|
|
# Clean up
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# ==============================================================================
|
|
# Python Dependencies
|
|
# ==============================================================================
|
|
|
|
# Copy Agent Lightning package files from repo root
|
|
COPY pyproject.toml uv.lock README.md ./
|
|
COPY agentlightning/ ./agentlightning/
|
|
|
|
# Install Agent Lightning (with optional GPU extras)
|
|
RUN pip install --no-cache-dir --upgrade pip wheel setuptools && \
|
|
if [ "$INSTALL_GPU" = "true" ]; then \
|
|
pip install --no-cache-dir -e ".[verl]" || pip install --no-cache-dir -e .; \
|
|
else \
|
|
pip install --no-cache-dir -e .; \
|
|
fi
|
|
|
|
# Copy and install WebShop server requirements
|
|
COPY examples/vercel_ai_webshop/server/requirements.txt ./server-requirements.txt
|
|
RUN pip install --no-cache-dir -r server-requirements.txt && \
|
|
python -m spacy download en_core_web_sm
|
|
|
|
# Copy and install AGL coordinator requirements
|
|
COPY examples/vercel_ai_webshop/agl/requirements.txt ./agl-requirements.txt
|
|
RUN pip install --no-cache-dir -r agl-requirements.txt
|
|
|
|
# ==============================================================================
|
|
# WebShop Setup
|
|
# ==============================================================================
|
|
|
|
# Clone WebShop repository
|
|
RUN git clone --depth 1 https://github.com/princeton-nlp/WebShop.git /app/webshop
|
|
|
|
# Install WebShop-specific dependencies
|
|
RUN cd /app/webshop && \
|
|
pip install --no-cache-dir -r requirements.txt || \
|
|
pip install --no-cache-dir flask gym beautifulsoup4 rank_bm25 thefuzz numpy pandas tqdm
|
|
|
|
ENV PYTHONPATH="/app/webshop:${PYTHONPATH}"
|
|
|
|
# ==============================================================================
|
|
# Node.js Dependencies
|
|
# ==============================================================================
|
|
|
|
# Copy package files and install dependencies
|
|
COPY examples/vercel_ai_webshop/package.json examples/vercel_ai_webshop/pnpm-lock.yaml* ./
|
|
RUN pnpm install --frozen-lockfile || pnpm install
|
|
|
|
# ==============================================================================
|
|
# Application Code
|
|
# ==============================================================================
|
|
|
|
# Copy example source code
|
|
COPY examples/vercel_ai_webshop/tsconfig.json ./
|
|
COPY examples/vercel_ai_webshop/src/ ./src/
|
|
COPY examples/vercel_ai_webshop/scripts/ ./scripts/
|
|
COPY examples/vercel_ai_webshop/agl/ ./agl/
|
|
COPY examples/vercel_ai_webshop/server/webshop_server.py ./server/webshop_server.py
|
|
COPY examples/vercel_ai_webshop/server/docker-entrypoint.sh ./server/docker-entrypoint.sh
|
|
|
|
# Make scripts executable
|
|
RUN chmod +x scripts/*.sh server/docker-entrypoint.sh
|
|
|
|
# ==============================================================================
|
|
# Runtime Configuration
|
|
# ==============================================================================
|
|
|
|
# Default environment variables
|
|
ENV AGENT_LIGHTNING_STORE_HOST=0.0.0.0 \
|
|
AGENT_LIGHTNING_STORE_PORT=4747 \
|
|
WEBSHOP_URL=http://127.0.0.1:3000 \
|
|
N_RUNNERS=1
|
|
|
|
# Expose ports
|
|
# - 3000: WebShop server
|
|
# - 4747: Agent Lightning Store
|
|
EXPOSE 3000 4747
|
|
|
|
# Volume for WebShop dataset persistence
|
|
VOLUME /app/webshop/data
|
|
|
|
# Health check for the Store server
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
CMD curl -f http://localhost:4747/v1/agl/health || exit 1
|
|
|
|
# Default: run full stack with qwen config
|
|
CMD ["bash", "scripts/run_stack.sh", "qwen"]
|