ARG BASE_IMAGE=truf-local:runtime
FROM ${BASE_IMAGE}

COPY --chown=10001:10001 --chmod=0600 payload/app/capacity_model.py /opt/truf/app/capacity_model.py
COPY --chown=10001:10001 --chmod=0600 payload/app/scanner_db.py /opt/truf/app/scanner_db.py
COPY --chown=10001:10001 --chmod=0600 payload/app/worker_assignment.py /opt/truf/app/worker_assignment.py
COPY --chown=10001:10001 --chmod=0600 payload/app/worker_api.py /opt/truf/app/worker_api.py
COPY --chown=10001:10001 --chmod=0600 payload/app/jsonl_projector.py /opt/truf/app/jsonl_projector.py
COPY --chown=10001:10001 --chmod=0600 payload/app/runtime_document.py /opt/truf/app/runtime_document.py
COPY --chown=10001:10001 --chmod=0600 payload/app/lifecycle_authority.py /opt/truf/app/lifecycle_authority.py
COPY --chown=10001:10001 --chmod=0600 payload/app/config.linux.yaml /opt/truf/app/config.linux.yaml

RUN python3 -I -S -B - <<'PY'
import ast
from pathlib import Path
import sys

root = Path('/opt/truf/app')
names = (
    'capacity_model.py',
    'scanner_db.py',
    'worker_assignment.py',
    'worker_api.py',
    'jsonl_projector.py',
    'runtime_document.py',
    'lifecycle_authority.py',
)
for name in names:
    ast.parse((root / name).read_text(encoding='utf-8'), filename=name)
sys.path.insert(0, str(root))
from capacity_model import (  # noqa: E402
    MAX_RESULT_BUNDLE_BYTES,
    REMOTE_ASSIGNMENT_BASELINE_BYTES,
    REMOTE_ASSIGNMENT_MAX_ACTIVE,
)
assert (MAX_RESULT_BUNDLE_BYTES, REMOTE_ASSIGNMENT_BASELINE_BYTES, REMOTE_ASSIGNMENT_MAX_ACTIVE) == (
    64 * 1024 * 1024,
    2 * 1024 * 1024,
    50,
)
PY
