L1 (29MB, 5860 files) is read-only and immutable — it belongs inside the image, not on a separate volume. The scroll is sealed in the aron. It ships with the vessel. - All 4 Dockerfiles: COPY l1/ /mnt/torah/ in runtime stage - deployment.yaml: Removed L1 PVC volume and all L1 volumeMounts - deployment.yaml: Added imagePullSecrets for registry auth - deployment.yaml: Manna uses emptyDir (kohen writes via kubectl cp) - No CSI driver needed — eliminates Exoscale block storage dependency Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
920 B
Docker
35 lines
920 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 Torah filesystem — baked into the image
|
|
COPY --chown=shorashim:shorashim l1/ /mnt/torah/
|
|
|
|
# L1 mount point
|
|
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)"]
|