From bc4657f641e78939ff3531bc880140f19e0358c3 Mon Sep 17 00:00:00 2001 From: demo-bot Date: Sun, 9 Aug 2026 15:10:53 +0000 Subject: [PATCH] decomposer: generate files for Create a production-suitable Dockerfile and minimal Docker Compose configuration for packaging and running the completed FastAPI endpoint monitoring service. --- scripts/integration.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scripts/integration.sh diff --git a/scripts/integration.sh b/scripts/integration.sh new file mode 100644 index 0000000..ab2b3f9 --- /dev/null +++ b/scripts/integration.sh @@ -0,0 +1,31 @@ +#!/bin/sh +set -eu +ROOT="$(mktemp -d)" +trap 'docker compose -f "$ROOT/compose.yaml" down --volumes >/dev/null 2>&1 || true; rm -rf "$ROOT"' EXIT +mkdir -p "$ROOT/app" +cat > "$ROOT/app/main.py" <<'PY' +from fastapi import FastAPI +app = FastAPI() +@app.get("/health") +def health(): return {"status": "ok"} +PY +# Complete, exact dependency closure; --no-deps prevents unpinned resolution. +cat > "$ROOT/requirements.lock" <<'REQ' +annotated-types==0.7.0 +anyio==4.7.0 +click==8.1.8 +fastapi==0.115.6 +h11==0.14.0 +idna==3.10 +pydantic==2.10.4 +pydantic-core==2.27.2 +sniffio==1.3.1 +starlette==0.41.3 +typing-extensions==4.12.2 +uvicorn==0.34.0 +REQ +cat > "$ROOT/input.json" <<'JSON' +{"service_specification":{"container":{"startup_module":"app.main:app","port":8000,"health_endpoint":"/health"}},"target_management_implementation":{},"endpoint_check_implementation":{},"current_status_implementation":{}} +JSON +containerize-fastapi --input "$ROOT/input.json" --service-dir "$ROOT" --output "$ROOT/output.json" --verify-docker +python -c 'import json,sys; d=json.load(open(sys.argv[1])); assert d["container_artifacts"]["docker_verification"]["passed"]' "$ROOT/output.json"