net-kingdom/bounded-executor/Containerfile
tegwick ba9d266b7e
All checks were successful
Build and Publish bounded-executor / build-and-push (push) Successful in 23s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Identity provider journey acceptance / provider (push) Successful in 32s
NK-WP-0056-T13 (part): executor CLI, clients, Containerfile, image workflow
CLI entry point and approval-engine/audit-core clients; events carry
occurred_at (audit-core envelope); hash-locked image with pinned lldap
stage builds locally; image workflow and executor tests in CI; pilot
example pins the executed files. rapp reshaping still open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 994874@bnt-lap001
Assistant-Session: 6017c416-d619-47eb-bd1a-f670a02d7d87
2026-10-31 16:51:07 +01:00

18 lines
1.3 KiB
Docker

# Bounded executor image (NK-WP-0056-T13). Build context: the repository root.
# docker build -f bounded-executor/Containerfile .
# lldap_set_password comes from the same pinned LLDAP image production runs, so OPAQUE matches.
FROM docker.io/lldap/lldap@sha256:9e605a66c02514bfcffd1b67cafb1e98d50992216bb2871d7ae44622047dd09d AS lldap
FROM python:3.12-slim@sha256:d764629ce0ddd8c71fd371e9901efb324a95789d2315a47db7e4d27e78f1b0e9
RUN useradd --create-home --uid 10001 executor
WORKDIR /app
COPY --from=lldap /app/lldap_set_password /app/lldap_set_password
COPY bounded-executor/requirements.txt /app/bounded-executor/requirements.txt
RUN python -m pip install --no-cache-dir --require-hashes -r /app/bounded-executor/requirements.txt
# The executed files keep their repository paths: admissions pin them by path and sha256.
COPY canon/schemas/bounded-execution-admission_v0.1.schema.json /app/canon/schemas/
COPY tools/bounded-execution-admission/validate.py /app/tools/bounded-execution-admission/
COPY sso-mfa/k8s/synthetic-journey/journey.py /app/sso-mfa/k8s/synthetic-journey/
COPY bounded-executor/executor.py bounded-executor/operations.py bounded-executor/clients.py bounded-executor/cli.py /app/bounded-executor/
USER 10001:10001
ENV PYTHONDONTWRITEBYTECODE=1
ENTRYPOINT ["python", "/app/bounded-executor/cli.py"]