docker: HEALTHCHECK через TCP probe ZMQ control port
netcat-openbsd добавлен в runtime layer (~50KB). HEALTHCHECK probe'ит listening на 5599 (ZMQ control). Full functional ping через nc не сработает (ZMTP требует binary greeting handshake), но liveness через TCP-проверку достаточен для docker-compose restart-on-unhealthy логики. Functional проверки делегированы external monitors: - MQTT health uptime_s растёт = composer не зависает - HA discovery sensor.composer_cfc-grid_active = camera-feed health - Phase 7 (Prometheus) добавит composition_time_us / fps metrics Live-validated: cfc-grid container статус 'healthy' через 25с после recreate, healthcheck Log shows exit 0.
This commit is contained in:
@@ -51,10 +51,12 @@ FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04 AS runtime
|
|||||||
|
|
||||||
# Ubuntu 22.04 jammy: package names иные чем noble (libpng16-16 без t64).
|
# Ubuntu 22.04 jammy: package names иные чем noble (libpng16-16 без t64).
|
||||||
# libcudart12 уже в runtime image; здесь только наши user-space deps.
|
# libcudart12 уже в runtime image; здесь только наши user-space deps.
|
||||||
|
# netcat-openbsd — для healthcheck'а через ZMQ ping (см. HEALTHCHECK ниже).
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libpng16-16 libfreetype6 \
|
libpng16-16 libfreetype6 \
|
||||||
libzmq5 libjson-c5 libmosquitto1 \
|
libzmq5 libjson-c5 libmosquitto1 \
|
||||||
fonts-dejavu-core \
|
fonts-dejavu-core \
|
||||||
|
netcat-openbsd \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Бинари + libcuframes (статически слинкована не вся, libcuframes shared нужен).
|
# Бинари + libcuframes (статически слинкована не вся, libcuframes shared нужен).
|
||||||
@@ -68,5 +70,14 @@ COPY --from=builder /src/build/src/libcuframes_composer.so.0.1.0 \
|
|||||||
# NVIDIA_DRIVER_CAPABILITIES должен включать 'video' для NVENC через libnvidia-encode.
|
# NVIDIA_DRIVER_CAPABILITIES должен включать 'video' для NVENC через libnvidia-encode.
|
||||||
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video
|
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video
|
||||||
|
|
||||||
|
# Healthcheck — проверяет что ZMQ control plane port слушается.
|
||||||
|
# Полная functional проверка через ZMQ ping требует ZMTP handshake (plain nc
|
||||||
|
# не подходит — это binary wire protocol с greeting), поэтому здесь только
|
||||||
|
# liveness через TCP probe. Composer thread'ы (compose/encode) могут зависнуть
|
||||||
|
# без падения main process'а, но external monitor (MQTT health uptime_s,
|
||||||
|
# Prometheus в Phase 7) дополнит контроль over time.
|
||||||
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
||||||
|
CMD nc -z 127.0.0.1 5599 || exit 1
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/grid_record"]
|
ENTRYPOINT ["/usr/local/bin/grid_record"]
|
||||||
CMD ["--help"]
|
CMD ["--help"]
|
||||||
|
|||||||
Reference in New Issue
Block a user