Files
cloud-ip-validator/deploy/docker/RUN.txt
T

141 lines
7.3 KiB
Plaintext
Raw Normal View History

2026-08-29 16:05:48 +03:00
Сборка образа (из корня репозитория):
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-проверок
2026-08-30 09:56:48 +03:00
===============================================================================
Сборка образа admin-dashboard (из корня репозитория):
docker build --platform linux/amd64 -t cloud-ip-validator-admin-dashboard -f deploy/docker/admin-dashboard/Dockerfile .
Запуск контейнера admin-dashboard:
docker run -d --platform linux/amd64 -p 8090:8090 --name admin-dashboard \
-e ADMIN_DASHBOARD_CONTROL_API_URL=<http://control-api-host:port> \
-e ADMIN_DASHBOARD_LISTEN_ADDR=:8090 \
-e ADMIN_DASHBOARD_CONTROL_API_TIMEOUT_SECONDS=10 \
-e ADMIN_DASHBOARD_LAST_COMPLETED_COUNT=20 \
-e ADMIN_DASHBOARD_POLL_INTERVAL_SECONDS=5 \
cloud-ip-validator-admin-dashboard
Рабочий пример (стенд 62.176.10.113):
docker run -d --platform linux/amd64 -p 8090:8090 --name admin-dashboard \
-e ADMIN_DASHBOARD_CONTROL_API_URL=http://62.176.10.113:8081 \
cloud-ip-validator-admin-dashboard
Переменные окружения:
ADMIN_DASHBOARD_CONTROL_API_URL обязательная
ADMIN_DASHBOARD_LISTEN_ADDR опциональная, дефолт :8090
ADMIN_DASHBOARD_CONTROL_API_TIMEOUT_SECONDS опциональная, дефолт 10
ADMIN_DASHBOARD_LAST_COMPLETED_COUNT опциональная, дефолт 20
ADMIN_DASHBOARD_POLL_INTERVAL_SECONDS опциональная, дефолт 5
Примечания:
--platform linux/amd64 бинарник в bin/ собран под Linux x86_64
-p 8090:8090 проброс порта дашборда наружу
===============================================================================
Сборка образа control-api (из корня репозитория):
docker build --platform linux/amd64 -t cloud-ip-validator-control-api -f deploy/docker/control-api/Dockerfile .
У control-api конфиг содержит списки (validators/sites/check_types/targets/
ip_addresses) и имена env-переменных для OpenStack-креденшлов — это не
шаблонизируется через docker run -e, как у остальных компонентов. Конфиг
монтируется файлом (по образцу configs/control-api.example.yaml, который
также лежит в образе как /etc/cloud-ip-validator/control-api.yaml.example),
а сама база данных — volume'ом для персистентности.
Запуск контейнера control-api:
docker run -d --platform linux/amd64 -p 8080:8080 --name control-api \
-v /path/to/control-api.yaml:/etc/cloud-ip-validator/control-api.yaml:ro \
-v cloud-ip-validator-db:/var/lib/cloud-ip-validator \
-e OS_AUTH_URL=<keystone_url> \
-e OS_PROJECT_ID=<project_id> \
-e OS_REGION_NAME=<region> \
-e OS_TOKEN=<token> \
cloud-ip-validator-control-api
(при auth_method: password — вместо OS_TOKEN передать OS_USERNAME,
OS_USER_DOMAIN_NAME, OS_PASSWORD; для openstack.mode: mock креденшлы не
нужны)
Примечания:
--platform linux/amd64 бинарник в bin/ собран под Linux x86_64
-p 8080:8080 проброс порта control-api наружу
-v .../control-api.yaml обязателен: конфиг с validators/sites/targets/ip_addresses
-v cloud-ip-validator-db volume для /var/lib/cloud-ip-validator/control-api.db
===============================================================================
Сборка образа validator-agent (из корня репозитория):
docker build --platform linux/amd64 -t cloud-ip-validator-validator-agent -f deploy/docker/validator-agent/Dockerfile .
Запуск контейнера validator-agent:
docker run -d --platform linux/amd64 --cap-add NET_RAW --name validator-agent \
-e VALIDATOR_AGENT_VALIDATOR_ID=<validator_id> \
-e VALIDATOR_AGENT_CONTROL_API_URL=<http://control-api-host:port> \
-e VALIDATOR_AGENT_POLL_INTERVAL_SECONDS=5 \
-e VALIDATOR_AGENT_SELF_CHECK_TIMEOUT_SECONDS=10 \
-e VALIDATOR_AGENT_HTTPS_TIMEOUT_SECONDS=10 \
-e VALIDATOR_AGENT_ICMP_TIMEOUT_SECONDS=5 \
-e VALIDATOR_AGENT_ICMP_COUNT=3 \
-e VALIDATOR_AGENT_SSH_ENABLED=false \
-e VALIDATOR_AGENT_SSH_TIMEOUT_SECONDS=5 \
cloud-ip-validator-validator-agent
Переменные окружения:
VALIDATOR_AGENT_VALIDATOR_ID обязательная, должен совпадать с
control-api config's validators[].validator_id
VALIDATOR_AGENT_CONTROL_API_URL обязательная
VALIDATOR_AGENT_POLL_INTERVAL_SECONDS опциональная, дефолт 5
VALIDATOR_AGENT_SELF_CHECK_TIMEOUT_SECONDS опциональная, дефолт 10
VALIDATOR_AGENT_HTTPS_TIMEOUT_SECONDS опциональная, дефолт 10
VALIDATOR_AGENT_ICMP_TIMEOUT_SECONDS опциональная, дефолт 5
VALIDATOR_AGENT_ICMP_COUNT опциональная, дефолт 3
VALIDATOR_AGENT_SSH_ENABLED опциональная, дефолт false
VALIDATOR_AGENT_SSH_TIMEOUT_SECONDS опциональная, дефолт 5
Примечания:
--platform linux/amd64 бинарник в bin/ собран под Linux x86_64
--cap-add NET_RAW нужен агенту для ICMP-проверок
ip_echo_urls в шаблон не выведены — при отсутствии в конфиге
агент сам подставляет дефолт (api.ipify.org,
ifconfig.me/ip); свой список задавайте через
смонтированный конфиг вместо шаблона при необходимости