a2a-server / original /Containerfile.txt
Sheyda Kiani Mehr
revert to test version
d98558a
FROM registry.access.redhat.com/ubi8/python-312
# Set work directory
WORKDIR /opt/app-root/
# Copy Python Project Files (Container context must be the `python` directory)
COPY . /opt/app-root
USER root
# Install system build dependencies and UV package manager
RUN dnf -y update && dnf install -y gcc gcc-c++ \
&& pip install uv
# Set environment variables for uv:
# UV_COMPILE_BYTECODE=1: Compiles Python files to .pyc for faster startup
# UV_LINK_MODE=copy: Ensures files are copied, not symlinked, which can avoid issues
ENV UV_COMPILE_BYTECODE=1 \
UV_LINK_MODE=copy
# Install dependencies using uv sync.
# --frozen: Ensures uv respects the uv.lock file
# --no-install-project: Prevents installing the project itself in this stage
# --no-dev: Excludes development dependencies
# --mount=type=cache: Leverages Docker's build cache for uv, speeding up repeated builds
RUN --mount=type=cache,target=/.cache/uv \
uv sync --frozen --no-install-project --no-dev
# Install the project
RUN --mount=type=cache,target=/.cache/uv \
uv sync --frozen --no-dev
# Allow non-root user to access the everything in app-root
RUN chgrp -R root /opt/app-root/ && chmod -R g+rwx /opt/app-root/
# Expose default port (change if needed)
EXPOSE 9999
USER 1001
# Run the agent
CMD uv run . --host 0.0.0.0