Shemot 40:33 — Vay'khal Moshe et ham'lakhah. The builder completes the work. The vessel is ready for transport. Step 33 — Deployment configuration: - Dockerfiles for all 4 components: - vav_pipeline: Elixir 1.16.1/OTP 26.2.1 release with Sanhedrin - shoresh_engine: GHC 9.6.4 binary - talmudic_engine: SWI-Prolog 9.2.2 - korban_processor: Python 3.12.2 with pydantic - Kubernetes manifests for Exoscale SKS (ch-gva-2): - Namespace, ConfigMap, Secrets template - L1 Torah PV/PVC (read-only mount) - Manna provision PVC (kohen writes, system reads) - Deployment: vav-pipeline + 3 sidecars, shared volumes - Service: ClusterIP + LoadBalancer with Exoscale NLB - Init container runs Ecto migrations (VavPipeline.Release) Step 36 — Halt monitor (esh tamid): - GenServer watches for three cardinal sins - halt!/3 immediately halts system, sounds Chatzotzrot war signal - Permanent audit log — halt events never deleted - resolve/1 requires explicit operator action to resume - alive?/0 for morning tamid verification - 13 tests: alive check, 3 halt types, resolution, audit log, chatzotzrot war signal integration - Added to supervision tree All 219 Elixir + 19 L3 + 195 Prolog + 33 Haskell = 447+ tests, 0 failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
872 B
Docker
32 lines
872 B
Docker
# Shorashim Talmudic Engine — SWI-Prolog dialectical reasoning
|
|
# Construction spec §1.1: SWI-Prolog 9.2.2
|
|
# Communicates with vav_pipeline via Unix domain socket
|
|
|
|
# === BUILD STAGE ===
|
|
FROM swipl:9.2.2 AS build
|
|
|
|
WORKDIR /app
|
|
COPY talmudic_engine/ ./
|
|
|
|
# Verify Prolog loads without errors
|
|
RUN swipl -g "consult('src/main'),halt(0)" -t "halt(1)"
|
|
|
|
# === RUNTIME STAGE ===
|
|
FROM swipl:9.2.2
|
|
|
|
RUN useradd --create-home --shell /bin/bash shorashim
|
|
USER shorashim
|
|
|
|
WORKDIR /home/shorashim/talmudic_engine
|
|
|
|
COPY --from=build --chown=shorashim:shorashim /app/ ./
|
|
|
|
# L1 mount point — Prolog reads Torah for mitzvot and root data
|
|
ENV L1_MOUNT_POINT=/mnt/torah
|
|
|
|
# Socket path for communication with vav_pipeline
|
|
ENV TALMUDIC_SOCKET_PATH=/tmp/shorashim/talmudic.sock
|
|
|
|
# Start the Prolog socket server
|
|
CMD ["swipl", "-g", "consult('src/main'),start_socket_server", "-t", "halt(1)"]
|