diff --git a/.gitignore b/.gitignore index 9a2904a9..4f64b280 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# TradingAgents output +.reports/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[codz] diff --git a/Dockerfile b/Dockerfile index 940609d3..c0790b8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,8 @@ COPY --from=builder /opt/venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" RUN useradd --create-home appuser +RUN mkdir -p /home/appuser/.tradingagents \ + && chown -R appuser:appuser /home/appuser/.tradingagents USER appuser WORKDIR /home/appuser/app diff --git a/cli/main.py b/cli/main.py index 33d110fb..ac837431 100644 --- a/cli/main.py +++ b/cli/main.py @@ -1,5 +1,6 @@ from typing import Optional import datetime +import os import typer from pathlib import Path from functools import wraps @@ -1177,7 +1178,8 @@ def run_analysis(): save_choice = typer.prompt("Save report?", default="Y").strip().upper() if save_choice in ("Y", "YES", ""): timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") - default_path = Path.cwd() / "reports" / f"{selections['ticker']}_{timestamp}" + reports_base = Path(os.getenv("TRADINGAGENTS_RESULTS_DIR", str(Path.cwd() / ".reports"))) + default_path = reports_base / f"{selections['ticker']}_{timestamp}" save_path_str = typer.prompt( "Save path (press Enter for default)", default=str(default_path) diff --git a/docker-compose.yml b/docker-compose.yml index d28135b3..7e9c1770 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,11 @@ services: build: . env_file: - .env + environment: + - TRADINGAGENTS_RESULTS_DIR=/home/appuser/reports volumes: - tradingagents_data:/home/appuser/.tradingagents + - ./.reports:/home/appuser/reports tty: true stdin_open: true @@ -21,8 +24,10 @@ services: - .env environment: - LLM_PROVIDER=ollama + - TRADINGAGENTS_RESULTS_DIR=/home/appuser/reports volumes: - tradingagents_data:/home/appuser/.tradingagents + - ./.reports:/home/appuser/reports depends_on: - ollama tty: true