28 lines
1.0 KiB
Docker
28 lines
1.0 KiB
Docker
# Agent service image (Railway). Python 3.12 is required — oracleagentmemory
|
|
# ships a cp312-only wheel.
|
|
FROM python:3.12-slim
|
|
|
|
# git: the ag_ui_agentspec adapter installs from the ag-ui git repo (see pyproject).
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends git ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# uv — the project's package manager.
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
|
|
# Use the image's system Python 3.12 (don't fetch a managed interpreter).
|
|
ENV UV_PYTHON_PREFERENCE=only-system UV_PYTHON_DOWNLOADS=never
|
|
|
|
WORKDIR /app
|
|
|
|
# Install dependencies from the lockfile first (cached layer). The project is not
|
|
# a package (tool.uv.package = false), so only the deps are installed.
|
|
COPY pyproject.toml uv.lock ./
|
|
RUN uv sync --frozen --no-install-project
|
|
|
|
# App code.
|
|
COPY . .
|
|
|
|
EXPOSE 8000
|
|
# Bind Railway's $PORT (8000 locally). --no-sync: deps are already installed.
|
|
CMD ["sh", "-c", "uv run --no-sync uvicorn concierge.server:app --host 0.0.0.0 --port ${PORT:-8000}"]
|