diff --git a/.gitignore b/.gitignore index ff2ffd8..c522fbf 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ data/processed/ *.pth notebooks/.ipynb_checkpoints/ data/paper_trades/ +data/portfolio_paper/ +data/portfolios/ diff --git a/Dockerfile b/Dockerfile index 7317fa6..4886e8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,11 @@ COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY src/ src/ -COPY scripts/strategies/ scripts/strategies/ -COPY strategies.yml strategies.yml +COPY scripts/ scripts/ +COPY strategies.yml portfolios.yml ./ VOLUME /app/data +# Default: paper trader multi-strategia. Il servizio "portfolio" in docker-compose +# sovrascrive il command per il runner a portafoglio (src.portfolio.runner). CMD ["uv", "run", "python", "-m", "src.live.multi_runner"] diff --git a/docker-compose.yml b/docker-compose.yml index 6d28b7b..66864de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,18 @@ services: - paper-trader: + portfolio: build: . - container_name: pythagoras-multi + container_name: pythagoras-portfolio restart: unless-stopped + command: ["uv", "run", "python", "-m", "src.portfolio.runner"] volumes: - ./data:/app/data - - ./strategies.yml:/app/strategies.yml:ro + - ./portfolios.yml:/app/portfolios.yml:ro env_file: - .env environment: - PYTHONUNBUFFERED=1 healthcheck: - test: ["CMD", "python", "-c", "import os; assert any(f.endswith('status.json') for r,d,fs in os.walk('/app/data/paper_trades') for f in fs)"] + test: ["CMD", "python", "-c", "import os; assert any(f.endswith('status.json') for r,d,fs in os.walk('/app/data/portfolios') for f in fs)"] interval: 120s timeout: 10s retries: 3