Собрать кастомный Docker-образ для Deployments
Docker registry используется для хранения кастомных Docker-образов. Кастомный образ собирается на основе любого базового образа с использованием необходимых пользователю зависимостей.
Шаг 1. Подготовьте Dockerfile
Dockerfile — текстовый документ, который содержит все необходимые команды для сборки образа.
Для отправки запроса в инференс, развернутый с использованием кастомного образа, вместо метода predict должен быть реализован метод, обрабатывающий запросы.
В общем случае этот документ выглядит так:
FROM { PROD_REGISTRY } /aicloud-base-images/horovod-cuda11.0-tf2.4.0-pt1.7.1:latest # the base image from which the custom image will be builtapt-get install mypackage # packages required for installation
Рассмотрим пример, как создать Dockerfile с использованием базового образа.
FROM cr.ai.cloud.ru/aicloud-base-images/horovod-cuda11.0-tf2.4.0-pt1.7.1USER rootapt-get install mypackageUSER user
Шаг 2. Соберите кастомный образ
Соберите образ из созданного Dockerfile (подробнее в документации Docker).
При работе на MacOS с процессорами Apple (M1, M2, M3 и пр.) необходимо к команде docker build добавить флаг --platform linux/amd64.
Приложение должно принимать пакеты по порту 8080.
Пример сборки кастомного образа для деплоя
Docker registry используется для хранения Docker-образов. Создание кастомного Docker-образа для Deployments позволяет развернуть требуемый образ (не используя базовый) в качестве деплоя.
Например, нужен веб-сервер в контейнере, который будет принимать пакеты по порту 8080.
FROM golang : 1.16 - alpineWORKDIR / appCOPY server . go go . mod ./RUN go build - o / serverEXPOSE 8080CMD [ "/server" ]
Файлы для скачивания
Шаг 3. Пройдите аутентификацию в Docker registry
Сгенерируйте ключ для Docker CLI:
В левом меню платформы перейдите в ML Space → Воркспейсы.
Возле воркспейса, для которого нужно сгенерировать ключ, нажмите
и выберите Параметры разработчика.
Возле Docker CLI Key нажмите Сгенерировать ключ.
После генерации скопируйте ключ.
Аутентифицируйтесь в Docker registry.
Откройте терминал на вашем компьютере и аутентифицируйтесь в Docker CLI, используя команду:
docker login cr.ai.cloud.ru --username example@example.com --password examplepsswdГде параметр example@example.com — это email пользователя, а examplepsswd — ключ, однократно передаваемый пользователю при нажатии на Сгенерировать ключ для Docker CLI.
Шаг 4. Загрузите образ в Docker registry
Команду для использования тега можно просмотреть, нажав Push command в Docker registry.
Присвойте образу название с префиксом «deploy-», тег и загрузите его в Docker registry, например:
cr . ai . cloud . ru / xxxxxxxxxx - xxxxxxx - xxxxx / deploy - test [: test_tag ]
Эта команда позволяет загрузить образ deploy-test с тегом test_tag в Docker registry требуемого воркспейса.
Шаг 5. Создайте деплой из кастомного образа
Создайте деплой из Docker-образа загруженного на предыдущем шаге и запустите его.
Проверьте корректность функционирования созданного деплоя, создав в разделе Тест API пустой запрос:
{}В ответ должно прийти сообщение:
{"message" : "Success request to path=/v1/models/{DEPLOY-NAME}:predict"}
Результат
Dockerfile, в котором описана сборка веб-сервера, принимающего запросы на порт 8080.
Репозиторий в Docker registry с префиксом «deploy-», в который загружен образ, собранный из Dockerfile.
Деплой, запущенный на основе собранного образа.
- Шаг 1. Подготовьте Dockerfile
- Шаг 2. Соберите кастомный образ
- Шаг 3. Пройдите аутентификацию в Docker registry
- Шаг 4. Загрузите образ в Docker registry
- Шаг 5. Создайте деплой из кастомного образа
- Результат