Я хочу создать новый образ в реестре удаленного докера, указав только частичные данные:
Согласно документам
https://docs.docker.com/registry/spec/api/#pushing-an-image
чтобы выдвинуть образ докера, я могу:
* опубликовать слой смолы, который у меня есть.
* опубликовать манифест
и реестр будет поддерживать мой новый новый образ.
Например:
* У меня есть локально Java-приложение в слое tar.
* В реестре удаленного докера уже есть базовый образ java8.
* Я хочу загрузить слой tar и манифест, который ссылается на базовый образ java8 и чтобы реестр докеров поддерживал новый образ для моего приложения.
(Слой tar, который я получаю от стороннего инструмента сборки под названием Bazel, если кому-то интересно)
Из документов, которые я собираю, я могу взять существующий манифест изображения java8, загрузить его, добавить (или предварительно перенести) мой новый слой в раздел слоев и альт.
Глядя на спецификации манифеста
https://docs.docker.com/registry/spec/manifest-v2-2/#image-manifest-field-descriptions
Я вижу, что есть раздел "объект конфигурации" с дайджестом в качестве ссылки на файл конфигурации. Это имеет смысл, мне может понадобиться переопределить точку входа, например. Итак, предположим, у меня также есть конфигурация докера в файле, который, как мне кажется, мне нужно как-то сообщить реестру.
Нигде (что я вижу) в API не указано, где или как загрузить конфигурацию, или, если мне вообще нужно это сделать - возможно, она включена в tar-слой слоя или что-то в этом роде.
Я загружаю конфигурацию как слой? это включено в смолу? если нет, то почему я даю ссылку на него в дайджесте?
Лучший ответ, на который я могу надеяться, - это последовательность http-вызовов в Docker-Registry, которые делают то, что я пытаюсь. В качестве альтернативы было бы очень полезно просто объяснить, что такое конфиг и как это сделать.