Livrare LOT 1 - Didi
This commit is contained in:
commit
5380c3fc63
990 changed files with 133308 additions and 0 deletions
49
ai_platform/modules/didi_brain/scheduler/Dockerfile
Normal file
49
ai_platform/modules/didi_brain/scheduler/Dockerfile
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# syntax=docker/dockerfile:1.6
|
||||
# =============================================================================
|
||||
# didibrain-scheduler — feeder + auditor + watcher in a single container.
|
||||
#
|
||||
# Imports brain_api.* directly (same Python package) so the auditor can use
|
||||
# DB pool + cache_judge + apply_judge_verdict without re-implementing them.
|
||||
# Build context is the didibrain/ project root (one level up).
|
||||
#
|
||||
# docker build -t didibrain-scheduler -f scheduler/Dockerfile .
|
||||
# =============================================================================
|
||||
|
||||
FROM python:3.12-slim-bookworm AS runtime
|
||||
|
||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PYTHONIOENCODING=utf-8 \
|
||||
PIP_NO_CACHE_DIR=1 \
|
||||
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
||||
PIP_ROOT_USER_ACTION=ignore
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY scheduler/requirements.txt /tmp/requirements.txt
|
||||
RUN pip install --upgrade pip \
|
||||
&& pip install -r /tmp/requirements.txt \
|
||||
&& rm /tmp/requirements.txt
|
||||
|
||||
# Brain modules (auditor imports them directly).
|
||||
COPY shared /app/shared
|
||||
COPY extractor /app/extractor
|
||||
COPY brain_api /app/brain_api
|
||||
COPY scheduler /app/scheduler
|
||||
|
||||
RUN useradd --system --create-home --shell /bin/false brain \
|
||||
&& chown -R brain:brain /app
|
||||
USER brain
|
||||
|
||||
# Healthcheck: main.py touches /tmp/scheduler.healthy every 30s. If the
|
||||
# file is older than 5 min, the container is considered unhealthy.
|
||||
HEALTHCHECK --interval=60s --timeout=10s --start-period=60s --retries=3 \
|
||||
CMD test -f /tmp/scheduler.healthy && \
|
||||
test "$(( $(date +%s) - $(stat -c %Y /tmp/scheduler.healthy) ))" -lt 300 \
|
||||
|| exit 1
|
||||
|
||||
CMD ["python", "-m", "scheduler.main"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue