### Сборка и запуск (через Docker/Make) Автор: Сергей Антропов, сайт: https://devops.org.ru Требования: - Docker и Docker Compose Основные цели Makefile: - `make collectors` — сборка коллекторов для текущей платформы - `make collectors-linux` / `collectors-darwin` / `collectors-windows` — кросс-сборка - `make build` / `build-linux` / `build-darwin` — сборка агента - `make run` — одноразовый запуск и вывод JSON (через jq) - `make agent` — запуск агента с логированием в stdout Примеры: ```bash make collectors-linux make build-linux make run ``` Docker-образ разработки: - Файл `Dockerfile` собирает бинарь агента `sensusagent` и часть коллекторов в `/bin/agent` Docker Compose (упрощенный запуск): Файл `docker-compose.yml` поднимает сервис `agent`. ```bash docker compose up --build ``` Переменные окружения: - `CONFIG_PATH` — путь к конфигу (по умолчанию `/bin/agent/config.yaml` в контейнере) - `LOG_LEVEL` — `error` | `info` | `debug` Пример docker-compose с переопределениями: ```yaml version: "3.9" services: agent: build: . image: sensusagent:dev environment: - CONFIG_PATH=/bin/agent/config.yaml - LOG_LEVEL=debug volumes: - ./bin/agent:/bin/agent:ro entrypoint: ["/bin/agent/sensusagent", "--mode", "stdout"] ``` Полезные команды: ```bash docker compose logs -f agent docker compose exec agent sh -c 'ls -la /bin/agent/collectors' ``` ## Команды обновления Для обновления агента на удаленных серверах: ```bash # Обновление systemd-сервиса (рекомендуется) make update-service # Обновление агента без systemd make update ``` Эти команды автоматически выполняют: 1. Остановку и удаление старой версии 2. Развертывание новой версии 3. Запуск обновленного агента