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).
|
||||
# libcudart12 уже в runtime image; здесь только наши user-space deps.
|
||||
# netcat-openbsd — для healthcheck'а через ZMQ ping (см. HEALTHCHECK ниже).
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libpng16-16 libfreetype6 \
|
||||
libzmq5 libjson-c5 libmosquitto1 \
|
||||
fonts-dejavu-core \
|
||||
netcat-openbsd \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Бинари + 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.
|
||||
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"]
|
||||
CMD ["--help"]
|
||||
|
||||
Reference in New Issue
Block a user