88 lines
3.0 KiB
YAML
88 lines
3.0 KiB
YAML
# Простой (без profiles/override/prod) docker-compose для сервера с ролями
|
|||
|
|
# control-api + admin-dashboard + prober. Реальный OpenStack (mode: real) —
|
||
|
|
# validator-agent сюда не входит, он работает отдельно на реальных
|
||
|
|
# ВМ-валидаторах в облаке и обращается к control-api по адресу этого хоста.
|
||
|
|
#
|
||
|
|
# Запуск:
|
||
|
|
# cp .env.example .env # заполнить реальными OS_*-креденшлами и PROBER_SITE_ID
|
||
|
|
# # поправить путь к control-api.yaml ниже, если реальный файл лежит не в
|
||
|
|
# # /etc/cloud-ip-validator/control-api.yaml
|
||
|
|
# docker compose up -d --build
|
||
|
|
# curl -s http://localhost:8080/healthz
|
||
|
|
#
|
||
|
|
# (из корня репозитория тот же стек можно поднять гибче, с profiles и
|
||
|
|
# dev/prod-разделением — см. deploy/docker/docker-compose.yml)
|
||
|
|
|
||
|
|
name: cloud-ip-validator
|
||
|
|
|
||
|
|
networks:
|
||
|
|
backend:
|
||
|
|
name: cloud-ip-validator
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
control-api-db:
|
||
|
|
name: cloud-ip-validator-db
|
||
|
|
|
||
|
|
services:
|
||
|
|
control-api:
|
||
|
|
build:
|
||
|
|
context: ..
|
||
|
|
dockerfile: deploy/docker/control-api/Dockerfile
|
||
|
|
image: cloud-ip-validator-control-api
|
||
|
|
platform: linux/amd64
|
||
|
|
restart: unless-stopped
|
||
|
|
networks: [backend]
|
||
|
|
ports:
|
||
|
|
- "8080:8080"
|
||
|
|
volumes:
|
||
|
|
# Поправьте путь слева, если реальный control-api.yaml (mode: real,
|
||
|
|
# с настоящими validators/sites/targets/ip_addresses) лежит не здесь.
|
||
|
|
- /etc/cloud-ip-validator/control-api.yaml:/etc/cloud-ip-validator/control-api.yaml:ro
|
||
|
|
- control-api-db:/var/lib/cloud-ip-validator
|
||
|
|
environment:
|
||
|
|
OS_AUTH_URL: "${OS_AUTH_URL}"
|
||
|
|
OS_PROJECT_ID: "${OS_PROJECT_ID}"
|
||
|
|
OS_REGION_NAME: "${OS_REGION_NAME}"
|
||
|
|
OS_INTERFACE: "${OS_INTERFACE:-}"
|
||
|
|
OS_TOKEN: "${OS_TOKEN:-}"
|
||
|
|
OS_USERNAME: "${OS_USERNAME:-}"
|
||
|
|
OS_USER_DOMAIN_NAME: "${OS_USER_DOMAIN_NAME:-}"
|
||
|
|
OS_PASSWORD: "${OS_PASSWORD:-}"
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1:8080/healthz"]
|
||
|
|
interval: 5s
|
||
|
|
timeout: 3s
|
||
|
|
retries: 10
|
||
|
|
start_period: 5s
|
||
|
|
|
||
|
|
admin-dashboard:
|
||
|
|
build:
|
||
|
|
context: ..
|
||
|
|
dockerfile: deploy/docker/admin-dashboard/Dockerfile
|
||
|
|
image: cloud-ip-validator-admin-dashboard
|
||
|
|
platform: linux/amd64
|
||
|
|
restart: unless-stopped
|
||
|
|
networks: [backend]
|
||
|
|
ports:
|
||
|
|
- "8090:8090"
|
||
|
|
environment:
|
||
|
|
ADMIN_DASHBOARD_CONTROL_API_URL: http://control-api:8080
|
||
|
|
depends_on:
|
||
|
|
control-api:
|
||
|
|
condition: service_healthy
|
||
|
|
|
||
|
|
prober:
|
||
|
|
build:
|
||
|
|
context: ..
|
||
|
|
dockerfile: deploy/docker/prober/Dockerfile
|
||
|
|
image: cloud-ip-validator-prober
|
||
|
|
platform: linux/amd64
|
||
|
|
restart: unless-stopped
|
||
|
|
networks: [backend]
|
||
|
|
cap_add: [NET_RAW]
|
||
|
|
environment:
|
||
|
|
PROBER_SITE_ID: "${PROBER_SITE_ID}"
|
||
|
|
PROBER_CONTROL_API_URL: http://control-api:8080
|
||
|
|
depends_on:
|
||
|
|
control-api:
|
||
|
|
condition: service_healthy
|