# Dockerfile für das Market Intelligence Backend # Nutzt ein Node.js Image als Basis und installiert Python und alle Abhängigkeiten. # Phase 1: Build Stage für Python-Abhängigkeiten FROM node:20-slim as python-deps WORKDIR /app # Systemabhängigkeiten für Python-Builds (insbesondere grpcio) RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ python3-venv \ python3-dev \ build-essential \ gcc \ && rm -rf /var/lib/apt/lists/* # Virtuelle Umgebung erstellen und aktivieren RUN python3 -m venv .venv ENV PATH="/app/.venv:$PATH" # Python-Abhängigkeiten kopieren und installieren COPY requirements.txt . RUN /app/.venv/bin/pip install --no-cache-dir -r requirements.txt # Phase 2: Final Stage FROM node:20-slim WORKDIR /app # Systemabhängigkeiten für den Runtime-Betrieb RUN apt-get update && apt-get install -y \ python3 \ # Optional: weitere Runtime-Abhängigkeiten hier hinzufügen, falls benötigt && rm -rf /var/lib/apt/lists/* # Venv aus der Build Stage kopieren COPY --from=python-deps /app/.venv ./.venv ENV PATH="/app/.venv:$PATH" # Node.js-Anwendung und Python-Skript kopieren COPY general-market-intelligence/package*.json ./general-market-intelligence/ COPY general-market-intelligence/server.cjs ./general-market-intelligence/ COPY general-market-intelligence/.gitignore ./general-market-intelligence/ COPY market_intel_orchestrator.py . COPY gemini_api_key.txt . COPY tmp tmp/ # Node.js-Abhängigkeiten installieren RUN cd general-market-intelligence && npm install --no-cache # Umgebungsvariablen setzen (API Key wird aus Datei geladen, hier nur als Beispiel) # ENV GEMINI_API_KEY="your_gemini_api_key_here" # Besser: Als bind mount oder Secret managen # Port für die Node.js API-Brücke EXPOSE 3001 # Startbefehl für den Node.js API-Brücke-Server CMD ["node", "general-market-intelligence/server.cjs"]