<< Click to Display Table of Contents >> Администрирование (Linux) > Локальная установка системы > Подготовка к установке Сборка своих базовых docker-образов |
По умолчанию при установке системы базовые docker-образы загружаются из репозитория registry.directum.ru/directum. Если доступа к сети Интернет нет, то из комплекта поставки нужно вручную скопировать архив DockerImages.tar.gz.
Если базовые docker-образы из комплекта поставки не подходят, то можно собрать свои. Например, в компании есть жесткие стандарты безопасности и нужно использовать образы, собранные на основе конкретного дистрибутива операционной системы Linux.
Чтобы использовать свои базовые docker-образы:
1.Запросите в службе поддержки Directum RX docker-файлы (Dockerfile) и скрипты сборки.
2.Убедитесь, что для сборки базовых docker-образов установлена версия Docker Engine 23 и выше.
3.В полученном от службы поддержки комплекте файлов откройте скрипт set_vars.ps1 и при необходимости измените значения переменных окружения:
•SDK_VERSION – номер последней версии компонента Microsoft .NET SDK 6.0.4XX, например 6.0.417. Подробнее см. на сайте Microsoft;
•IMAGE_VERSION –версия docker-образов;
•REPO_NAME – репозиторий, в который будут загружаться базовые docker-образы;
•IMAGE_NAME – имя базового docker-образа;
•BASE_IMAGE – имя образа базового дистрибутива Linux;
•DOTNET_ROOT – путь до папки, в которую устанавливаются компоненты .NET при сборке образа.
ВАЖНО. Компоненты .NET устанавливаются с помощью сценариев dotnet-install из официальных источников Microsoft. Не рекомендуется загружать пакеты установки из репозиториев Linux, так как это может привести к неработоспособности системы.
4.Если пакетный менеджер выбранного дистрибутива Linux отличается от указанного в скриптах сборки, то измените команды во всех docker-файлах (Dockerfile) в соответствии с используемым программным обеспечением. Например, если установлен менеджер пакетов RPM, то замените команды вида apt-get <команда>. Удалите лишние, если они не поддерживаются вашим пакетным менеджером.
При необходимости в docker-файлах измените имена пакетов на те, которые хранятся в репозитории соответствующего дистрибутива Linux.
5.Если в дистрибутиве Linux, выбранном в качестве базового, устанавливается версия библиотеки OpenSSL 3, например 3.0.1, то необходимо внести изменения в docker-файл gost_crypto\Dockerfile:
•в переменной branch укажите значение v3.0.1;
•если выбран дистрибутив семейства DEB-based, то в переменной package укажите значение cryptopro-linux-amd64_deb.tgz;
•найдите строку:
cp /builder/$OPENSSL_ENGINES_PATH/gost.so $OPENSSL_ENGINES_PATH
После нее добавьте команды копирования библиотек:
cp /builder/usr/local/lib64/ossl-modules/gostprov.so /usr/lib64/ossl-modules/
cp /builder/usr/local/lib64/libgost*.so /usr/lib64/
•перед формированием финального образа добавьте конфигурирование ГОСТ-алгоритмов.
Пример для AlmaLinux 9:
ARG gost_policy=GOST
COPY <<-EOT /etc/crypto-policies/policies/modules/${gost_policy}.pmod
# Adds GOST algorithms.
# This is an example subpolicy, the algorithm names might differ in reality.
# [https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/blob/master/policies/modules/GOST.pmod]
mac = +HMAC-STREEBOG-256 +HMAC-STREEBOG-512 +MAGMA-OMAC +KUZNYECHIK-OMAC +MAGMA-OMAC-ACPKM +KUZNYECHIK-OMAC-ACPKM +GOST28147-TC26Z-IMIT +GOST28147-CPA-IMIT +AEAD
group = +GOST-GC256A +GOST-GC256B +GOST-GC256C +GOST-GC256D +GOST-GC512A +GOST-GC512B +GOST-GC512C
hash = +STREEBOG-256 +STREEBOG-512 GOSTR94+
sign = +GOSTR341012-256 +GOSTR341012-512 GOSTR341001+
cipher@TLS = +GOST28147-TC26Z-CNT +GOST28147-CPA-CFB +MAGMA-CTR-ACPKM +KUZNYECHIK-CTR-ACPKM
cipher@!TLS = +GOST28147-TC26Z-CNT +MAGMA-CTR-ACPKM +KUZNYECHIK-CTR-ACPKM +GOST28147-CPA-CFB +GOST28147-CPB-CFB +GOST28147-CPC-CFB +GOST28147-CPD-CFB +GOST28147-TC26Z-CFB
key_exchange = +VKO-GOST-2001 +VKO-GOST-2012 +VKO-GOST-KDF
EOT
RUN update-crypto-policies --set DEFAULT:${gost_policy}
ENV OPENSSL_ENABLE_SHA1_SIGNATURES=1
# --------- ФИНАЛЬНЫЙ ОБРАЗ ------------ #
<…>
ПРИМЕЧАНИЕ. Для других дистрибутивов Linux возможны отличия в конфигурировании ГОСТ-алгоритмов, поэтому использование приведенного примера может привести к ошибкам времени выполнения. Рекомендуется проанализировать конфигурационный файл openssl.conf в собранном образе и скорректировать инструкции в docker-файле.
6.Первый раз рекомендуется собирать образы поочередно, чтобы отследить возможные ошибки. Последовательно запустите файлы build_image.ps1 из папок образов в том порядке, который указан в скрипте build_images.ps1.
ПРИМЕЧАНИЕ. В выбранном дистрибутиве Linux могут отсутствовать пакеты, которые предоставляют какие-либо утилиты командной строки. Тогда в процессе построения образа возникает ошибка. В этом случае установите нужные пакеты.
Когда процесс будет отлажен, можно запускать сборку docker-образов с помощью скрипта build_images.ps1. Например, если нужно обновить версию .NET или версии пакетов Linux для устранения уязвимостей.
7.Загрузите собранные образы в репозиторий, указанный в переменной REPO_NAME. Для этого запустите скрипт push_images.ps1.
В результате собранные docker-образы готовы к использованию при установке системы.
© Компания Directum, 2024 |