docker container for prober

This commit is contained in:
Sergey Bashashin committed 2026-08-29 16:05:48 +03:00
1 parent 550ce3fec4
commit 6f5aa35df5
7 files changed
+68

No files matched your search

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+34
View File
@@ -0,0 +1,34 @@
Сборка образа (из корня репозитория):
docker build --platform linux/amd64 -t cloud-ip-validator-prober -f deploy/docker/prober/Dockerfile .
Запуск контейнера-пробера:
docker run -d --platform linux/amd64 --cap-add NET_RAW --name prober \
-e PROBER_SITE_ID=<site_id> \
-e PROBER_CONTROL_API_URL=<http://control-api-host:port> \
-e PROBER_POLL_INTERVAL_SECONDS=5 \
-e PROBER_TCP_TIMEOUT_SECONDS=5 \
-e PROBER_ICMP_TIMEOUT_SECONDS=5 \
-e PROBER_ICMP_COUNT=3 \
cloud-ip-validator-prober
Рабочий пример (стенд 62.176.10.113):
docker run -d --platform linux/amd64 --cap-add NET_RAW --name prober \
-e PROBER_SITE_ID=sbas \
-e PROBER_CONTROL_API_URL=http://62.176.10.113:8081 \
cloud-ip-validator-prober
Переменные окружения:
PROBER_SITE_ID обязательная, должна быть зарегистрирована в
control-api (PUT /api/v1/admin/config/sites/{index})
PROBER_CONTROL_API_URL обязательная
PROBER_POLL_INTERVAL_SECONDS опциональная, дефолт 5
PROBER_TCP_TIMEOUT_SECONDS опциональная, дефолт 5
PROBER_ICMP_TIMEOUT_SECONDS опциональная, дефолт 5
PROBER_ICMP_COUNT опциональная, дефолт 3
Примечания:
--platform linux/amd64 бинарник в bin/ собран под Linux x86_64
--cap-add NET_RAW нужен проберу для ICMP-проверок
+11
View File
@@ -0,0 +1,11 @@
FROM alpine:3.20
RUN apk add --no-cache gettext
COPY bin/prober /usr/local/bin/prober
COPY deploy/docker/prober/prober.yaml.tmpl /etc/prober/prober.yaml.tmpl
COPY deploy/docker/prober/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
set -eu
: "${PROBER_SITE_ID:?PROBER_SITE_ID is required}"
: "${PROBER_CONTROL_API_URL:?PROBER_CONTROL_API_URL is required}"
export PROBER_POLL_INTERVAL_SECONDS="${PROBER_POLL_INTERVAL_SECONDS:-5}"
export PROBER_TCP_TIMEOUT_SECONDS="${PROBER_TCP_TIMEOUT_SECONDS:-5}"
export PROBER_ICMP_TIMEOUT_SECONDS="${PROBER_ICMP_TIMEOUT_SECONDS:-5}"
export PROBER_ICMP_COUNT="${PROBER_ICMP_COUNT:-3}"
envsubst '${PROBER_SITE_ID} ${PROBER_CONTROL_API_URL} ${PROBER_POLL_INTERVAL_SECONDS} ${PROBER_TCP_TIMEOUT_SECONDS} ${PROBER_ICMP_TIMEOUT_SECONDS} ${PROBER_ICMP_COUNT}' \
< /etc/prober/prober.yaml.tmpl > /etc/prober/prober.yaml
exec /usr/local/bin/prober -config /etc/prober/prober.yaml
+8
View File
@@ -0,0 +1,8 @@
site_id: "${PROBER_SITE_ID}"
control_api_url: "${PROBER_CONTROL_API_URL}"
poll_interval_seconds: ${PROBER_POLL_INTERVAL_SECONDS}
checks:
tcp_timeout_seconds: ${PROBER_TCP_TIMEOUT_SECONDS}
icmp_timeout_seconds: ${PROBER_ICMP_TIMEOUT_SECONDS}
icmp_count: ${PROBER_ICMP_COUNT}