# km -- der Wissensdienst (spine/core#8). Benannt nach der Faehigkeit. # # Ein Prozess: HTTP-API + Takt (ziehen, einlesen, indexieren, einliefern). # Die Ablage ist ein Git-Checkout auf dem Volume /data/ablage, der Index eine # SQLite-Datei daneben. SilverBullet als Oberflaeche ist ein eigener Container # auf demselben Volume (deploy/compose.yml), nicht Teil dieses Images. FROM docker.io/library/python:3.13-slim RUN apt-get update \ && apt-get install -y --no-install-recommends git ca-certificates curl \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt /app/ RUN pip install --no-cache-dir -r requirements.txt COPY km/ /app/km/ COPY entrypoint.sh /app/entrypoint.sh RUN chmod +x /app/entrypoint.sh /app/km/*.py ENV KM_ABLAGE=/data/ablage \ KM_PORT=8390 \ PYTHONUNBUFFERED=1 VOLUME ["/data"] EXPOSE 8390 HEALTHCHECK --interval=60s --timeout=5s --start-period=30s \ CMD curl -fsS http://127.0.0.1:8390/health >/dev/null || exit 1 ENTRYPOINT ["/app/entrypoint.sh"]