# Use the official Python image based on Windows Server Core FROM python:3.10-windowsservercore-1809 # Set the shell to PowerShell SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] # Set the working directory WORKDIR /app # Copy the requirements file COPY requirements.txt . # TA-Lib is notoriously difficult to compile from source on Windows because it requires Visual Studio Build Tools. # To bypass downloading GBs of build tools, we download a pre-compiled Windows wheel for Python 3.10 64-bit. RUN Invoke-WebRequest -Uri "https://github.com/cgohlke/talib-build/releases/download/v0.4.24/TA_Lib-0.4.24-cp310-cp310-win_amd64.whl" -OutFile "TA_Lib.whl" ; \ pip install TA_Lib.whl ; \ Remove-Item TA_Lib.whl # Remove TA-Lib from requirements.txt since we just installed it manually RUN (Get-Content requirements.txt) -match '^(?!TA-Lib).*$' | Set-Content requirements.txt # Install the rest of the Python dependencies (MetaTrader5 will install successfully on Windows) RUN pip install --no-cache-dir -r requirements.txt # Copy the rest of the application code COPY . . # Set environment variables for Python ENV PYTHONPATH=/app ENV PYTHONUNBUFFERED=1 # Define the default command CMD ["python", "scripts/run_dual_model_production.py", "--symbols", "BTCUSD", "XAUUSD", "--timeframe", "M15", "--days", "90"]