diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e764889 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.venv/ +.git/ +.idea/ +.pytest_cache/ +.ruff_cache/ +*.md +*.pyc +__pycache__/ diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..d254cb2 --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +PROVIDER_URL=http://localhost:8000/v1 +PROVIDER_API_KEY=your-api-key +PROVIDER_MODEL=gpt-4 +AGENT_API_PATH=../agent_api diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1de3b97 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM python:3.14-slim as base + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +FROM base as development + +RUN pip install uv + +COPY pyproject.toml uv.lock ./ +RUN uv sync --frozen --no-install-project + +COPY --from=agent_api . /agent_api/ +RUN uv pip install -e /agent_api/ + +ENV PATH="/app/.venv/bin:$PATH" + +EXPOSE 8000 + +CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a4c9b6c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + agent-dev: + build: + context: . + target: development + additional_contexts: + agent_api: ${AGENT_API_PATH} + volumes: + - ./src:/app/src + - ${AGENT_API_PATH}:/agent-api/ + ports: + - "8000:8000" + env_file: + - .env + profiles: + - dev