## Описание содержимого ### Сборочное окружение агентской части Выполняет компиляцию и установку библиотек отсутствующих в репозиториях `ALTLinux p10` подходящих версий. На выходе получается образ контейнера пригодный к использованию в качестве сборочной машины (билдера) для агентской части. Список собираемых и устанавливаемых библиотек: `DPDK`, `Seastar`, `fmt` (оно же`libfmt`), `AMQP-CPP`. ### runtime-окружение агентской части Контейнер содержащий необходимое для запуска агентской части может быть собран через `runtime/Dockerfile`. Библиотеки собираемые и устанавливаемые при создании образа сборчного окружения (`builder/Dockerfile`) используются как статически линкуемые, т.е. нужны лишь при сборке агентской части. ## Использование сборочного окружения Собирается два образа контейнера, при этом образ `alt:pre-builder` используется в `builder/Dockerfile`. ```shell docker build -t alt:pre-builder pre-builder/ docker build -t alt:agent-builder builder/ ``` Исходный код библиотек уже должен быть в `builder/libs` во время создания образа контейнера через `builder/Dockerfile`. По этой причине порядок создания образов для сборочного окружения может включать загрузку исходного кода собираемый библиотек из одного или нескольких репозиториев. В таком случае полный сценарий использования может выглядеть как: ```shell git clone --depth 1 https://git.peresvet.it/system-trace/agent-enviroments.git cd agent-enviroments docker build -t alt:pre-builder pre-builder/ cd builder/libs git clone -b 11.0.2 --depth 1 https://github.com/fmtlib/fmt.git git clone -b v4.3.26 --depth 1 https://github.com/CopernicaMarketingSoftware/AMQP-CPP.git git clone --depth 1 https://github.com/scylladb/seastar.git cd seastar git submodule update --init --depth 1 cd ../.. docker build -t alt:agent-builder builder/ ``` ### Описание процесса сборки образов При сборки `builder/Dockerfile` создаётся промежуточный/временный контейнер, из которого забираются результаты сборки для установки в итоговом образе. Исходный код библиотек и артефакты сборки остаются в промежуточном контейнере и не попадают в конечный образ контейнера. Образ `alt:pre-builder` используется как отправная точка — это контейнер `ALTLinux p10` имеющий всё необходимое для сборки нужных библиотек.