generated from coulomb/repo-seed
- Dockerfile: copy alembic.ini + migrations/ so actcore-migrate works
- docker-compose.railiance.yml:
- Temporal: add dynamicconfig volume mount + correct DYNAMIC_CONFIG_FILE_PATH
- Temporal: healthcheck uses 'temporal operator cluster health' (not tctl)
- NATS: add monitoring port -m 8222 for wget-based healthcheck
- actcore-api healthcheck: use Python urllib (curl absent from slim image)
- api.py: fix /health Temporal probe — Client has no describe_namespace;
use workflow_service.get_system_info(GetSystemInfoRequest()) instead
- Makefile: grep -Eh to suppress filename prefix when MAKEFILE_LIST has
multiple files (.env included via -include)
All 8 services start cleanly; /health returns {"status":"ok",...} HTTP 200;
SIGTERM drains worker cleanly within grace period; make help correct.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
606 B
Docker
22 lines
606 B
Docker
# Stage 1 — install Python deps
|
|
FROM python:3.12-slim AS builder
|
|
RUN pip install uv --no-cache-dir
|
|
WORKDIR /app
|
|
COPY pyproject.toml uv.lock ./
|
|
COPY src/ ./src/
|
|
RUN uv sync --no-dev --frozen
|
|
|
|
# Stage 2 — runtime image
|
|
FROM python:3.12-slim AS runtime
|
|
WORKDIR /app
|
|
COPY --from=builder /app/.venv /app/.venv
|
|
COPY --from=builder /app/src /app/src
|
|
COPY alembic.ini ./
|
|
COPY migrations/ ./migrations/
|
|
COPY activity-definitions/ ./activity-definitions/
|
|
COPY event-types/ ./event-types/
|
|
COPY tasks/ ./tasks/
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
ENV PYTHONPATH="/app/src"
|
|
CMD ["python", "-m", "activity_core.worker"]
|