ARG PYTHON_IMAGE=python:3.12-slim
FROM ${PYTHON_IMAGE}
WORKDIR /world
COPY . /world
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 HOST=0.0.0.0 PORT=8080
RUN python3 -m compileall -q runtime serve.py verify_bundle.py \
      verify_all_tools.py verify_model_traces.py verify_gap_confirmation.py \
      verify_references.py \
 && python3 verify_bundle.py \
 && (python3 verify_all_tools.py >/tmp/all-tools-verification.json \
     || { cat /tmp/all-tools-verification.json; exit 1; }) \
 && (python3 verify_model_traces.py >/tmp/model-trace-verification.json \
     || { cat /tmp/model-trace-verification.json; exit 1; }) \
 && (python3 verify_gap_confirmation.py >/tmp/gap-confirmation-verification.json \
     || { cat /tmp/gap-confirmation-verification.json; exit 1; }) \
 && (python3 verify_references.py >/tmp/reference-integrity.json \
     || { cat /tmp/reference-integrity.json; exit 1; }) \
 && rm -rf /world/.company-training-runtime
EXPOSE 8080
HEALTHCHECK --interval=15s --timeout=3s --start-period=5s --retries=3 \
  CMD python3 -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=2)" || exit 1
CMD ["python3", "serve.py"]
