From 10c136f49c82e11f0e324c9c50cda1638a8ed5a7 Mon Sep 17 00:00:00 2001 From: Yijia-Xiao Date: Sat, 4 Apr 2026 08:14:01 +0000 Subject: [PATCH] feat: add Docker support for cross-platform deployment --- .dockerignore | 15 +++++++++++++++ Dockerfile | 27 +++++++++++++++++++++++++++ README.md | 13 +++++++++++++ docker-compose.yml | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..cac71018 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.git +.venv +.env +.claude +.idea +.vscode +.DS_Store +__pycache__ +*.egg-info +build +dist +results +eval_results +Dockerfile +docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..940609d3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM python:3.12-slim AS builder + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 + +RUN python -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" + +WORKDIR /build +COPY . . +RUN pip install --no-cache-dir . + +FROM python:3.12-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +COPY --from=builder /opt/venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" + +RUN useradd --create-home appuser +USER appuser +WORKDIR /home/appuser/app + +COPY --from=builder --chown=appuser:appuser /build . + +ENTRYPOINT ["tradingagents"] diff --git a/README.md b/README.md index 4cfeb4e5..9a92bff9 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,19 @@ Install the package and its dependencies: pip install . ``` +### Docker + +Alternatively, run with Docker: +```bash +cp .env.example .env # add your API keys +docker compose run --rm tradingagents +``` + +For local models with Ollama: +```bash +docker compose --profile ollama run --rm tradingagents-ollama +``` + ### Required APIs TradingAgents supports multiple LLM providers. Set the API key for your chosen provider: diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..3a5d4e29 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +services: + tradingagents: + build: . + env_file: + - .env + volumes: + - ./results:/home/appuser/app/results + tty: true + stdin_open: true + + ollama: + image: ollama/ollama:latest + volumes: + - ollama_data:/root/.ollama + profiles: + - ollama + + tradingagents-ollama: + build: . + env_file: + - .env + environment: + - LLM_PROVIDER=ollama + volumes: + - ./results:/home/appuser/app/results + depends_on: + - ollama + tty: true + stdin_open: true + profiles: + - ollama + +volumes: + ollama_data: