- tocdepth
2
Собрать кастомный 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 built
apt-get install mypackage # packages required for installation
См.также
Рассмотрим пример, как создать Dockerfile с использованием базового образа.
FROM cr.ai.cloud.ru/aicloud-base-images/horovod-cuda11.0-tf2.4.0-pt1.7.1
USER root
apt-get install mypackage
USER user
Шаг 2. Соберите кастомный образ
Соберите образ из созданного Dockerfile (подробнее в документации Docker).
При работе на MacOS с процессорами Apple (M1, M2, M3 и пр.) необходимо к команде docker build
добавить флаг --platform linux/amd64
.
Примечание
Приложение должно принимать пакеты по порту 8080.
Пример сборки кастомного образа для деплоя
Docker registry используется для хранения Docker-образов. Создание кастомного Docker-образа для Deployments позволяет развернуть требуемый образ (не используя базовый) в качестве деплоя.
Например, нужен веб-сервер в контейнере, который будет принимать пакеты по порту 8080.
Файлы для скачивания
Dockerfile
(при скачивании добавляется расширение txt, которое требуется удалить).
Шаг 3. Пройдите аутентификацию в Docker registry
Сгенерируйте ключ для Docker CLI:
В левом меню платформы перейдите в
.Возле воркспейса, для которого нужно сгенерировать ключ, нажмите и выберите Параметры разработчика.
Возле Docker CLI Key нажмите Сгенерировать ключ.
После генерации скопируйте ключ.
В левом меню перейдите в
.Сгенерируйте ключ для Docker registry:
Если в Docker registry нет загруженных образов, вместо виден значок . Чтобы изменить ключ, необходимо сгенерировать новый, нажав Сгенерировать ключ для Docker CLI.
Если в Docker registry есть загруженные образы, нажмите . В появившемся окне нажмите Сгенерировать ключ для Docker CLI.
После генерации скопируйте ключ.
Аутентифицируйтесь в Docker registry любым из предпочитаемых способов.
С помощью интерфейса ML Space можно аутентифицироваться в 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.
Деплой, запущенный на основе собранного образа.
для Dev & Test