Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions deployment/Dockerfile.bot
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,21 @@ ENV UV_LINK_MODE=copy
# Print a summary of the features available in the base image (for debugging)
ENV PCC_LOG_FEATURES_SUMMARY=true

ENV PYTHONPATH=/app

RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-install-project --no-dev --group bot

# Copy LICENSE (required by pyproject.toml)
COPY LICENSE ./

# Copy the application code
RUN mkdir -p gradientbang && touch gradientbang/__init__.py
COPY src/gradientbang/utils/ gradientbang/utils/
COPY src/gradientbang/scripts/ gradientbang/scripts/
COPY src/gradientbang/pipecat_server/voice_task_manager.py gradientbang/pipecat_server/voice_task_manager.py
# Copy the application code (must be in src/ directory per pyproject.toml config)
# This must happen BEFORE uv sync because the package build needs these files
RUN mkdir -p src/gradientbang && touch src/gradientbang/__init__.py
COPY src/gradientbang/utils/ src/gradientbang/utils/
COPY src/gradientbang/scripts/ src/gradientbang/scripts/
COPY src/gradientbang/pipecat_server/ src/gradientbang/pipecat_server/
# @TODO: game_server code required right now as summary_formatter util depends on it
COPY src/gradientbang/game_server/ gradientbang/game_server/
COPY src/gradientbang/game_server/ src/gradientbang/game_server/

RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-dev --group bot

COPY src/gradientbang/pipecat_server/bot.py bot.py