FROM python:3.11-slim AS builder WORKDIR /app COPY pyproject.toml README.md ./ COPY src/ ./src/ RUN pip install --no-cache-dir --prefix=/install ".[server]" FROM python:3.11-slim AS runner WORKDIR /app ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 COPY --from=builder /install /usr/local COPY pyproject.toml README.md ./ COPY src/ ./src/ COPY configs/ ./configs/ RUN addgroup --system --gid 1001 appuser \ && adduser --system --uid 1001 appuser \ && chown -R appuser:appuser /app USER appuser EXPOSE 8001 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8001/api/v1/health')" # ponytail: 与 docker-compose.yaml command 对齐,纯 `docker run` 启动完整 AgentKit # 而非 GEO 子系统。GEO 子系统应通过独立 image 或 ENTRYPOINT 参数切换。 ENTRYPOINT ["agentkit"] CMD ["serve", "--host", "0.0.0.0", "--port", "8001"]