-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.controller
More file actions
44 lines (40 loc) · 2.11 KB
/
Copy pathDockerfile.controller
File metadata and controls
44 lines (40 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Root-level compose build entry for the workflow controller.
#
# Thin wrapper: delegates to the canonical Dockerfile in
# tools/workflow-controller (the implementation lives there). Keeping the
# root Dockerfile separate lets docker-compose build with context "." while
# the service sources stay in their own directory.
#
# Build context: repository root (see docker-compose.yml).
# Base image: python:3.12-slim — CACHED in the MergePilot-Test daemon
# (image ID 54a0b2beae90). The pip install below runs at BUILD time and is
# NOT executed in Phase 1-C; it requires a separate, explicit authorization
# round (dependency-install authorization).
FROM python:3.12-slim
RUN pip install --no-cache-dir \
psycopg2-binary==2.9.12 \
mcp==1.28.1 \
httpx==0.28.1 \
anyio==4.14.2
COPY tools/workflow-controller/controller.py /app/controller.py
COPY tools/workflow-controller/gateway_client.py /app/gateway_client.py
COPY tools/workflow-controller/m4f_controller.py /app/m4f_controller.py
COPY tools/workflow-controller/m4f_ingress.py /app/m4f_ingress.py
# M8-GH-1: channel-neutral TASK_SUBMITTED three-table single implementation
# (top-level import of controller.py).
COPY tools/workflow-controller/task_submit.py /app/task_submit.py
# M8-GH-1 (opt-in): GitHub delivery drain + Checks desired reconcile
# (lazily imported by controller.py when GITHUB_INGRESS_ENABLED=1).
COPY tools/workflow-controller/github_drain.py /app/github_drain.py
# Retry v3 Fix 3: healthcheck probe (TCP to the configured PostgreSQL) and
# the entrypoint validating the extracted env contract (PG_HOST/PG_PORT/
# PG_DATABASE/PG_USER + secret PG_PASS/ADMIN_PW presence) with a stable
# CONFIG_INVALID before exec'ing controller.py.
COPY tools/workflow-controller/healthcheck.py /app/healthcheck.py
COPY tools/workflow-controller/readiness.py /app/readiness.py
COPY tools/controller_entrypoint.py /app/controller_entrypoint.py
COPY tools/demo_console/one_click_startup.py /app/one_click_startup.py
WORKDIR /app
ENV PYTHONUNBUFFERED=1 \
CONTROLLER_READY_SENTINEL=/tmp/mergepilot-controller.ready
ENTRYPOINT ["python", "-u", "/app/controller_entrypoint.py"]