conf_server_image:latest
в качестве эталона изображения указывает на Docker Концентратор (псевдоним для library/conf_server_image:latest
). Например, в Dockerfile
, когда вы говорите,
FROM openjdk:11-jre-slim
Docker CLI загружает openjdk
изображение на Docker Hub.
$ docker pull openjdk:11-jre-slim
11-jre-slim: Pulling from library/openjdk
...
Обратите внимание на ссылку на изображение library/openjdk
.
Чтобы Jib загрузил изображение в локальном Docker демоне, вы должны сказать <image>docker://conf_server_image:latest</image>
. Однако использование изображения от Docker демона влечет за собой некоторые накладные расходы (которые могут быть незначительными). Таким образом, может быть лучше поместить sh базовый образ в любой реестр контейнера (локальный частный реестр тоже может работать) и использовать Jib-образ. Jib кэширует базовые изображения, поэтому использование изображения в реестре не означает, что Jib будет загружать его снова и снова. (Но, конечно, если изображение, на которое указывает тег, обновляется, Jib автоматически загружает обновленное изображение.)
Существует еще один вариант, в котором вы можете просто избавиться от первого шага Dockerfile
. Jib позволяет добавлять любые произвольные файлы в изображение с помощью функции <extraDirectories>
. Каталог по умолчанию - src/main/jib
, поэтому, например, если вы поместите src/main/jib/foo/bar.txt
, у вас будет /foo/bar.txt
во встроенном образе. Однако я понимаю, что вы можете не захотеть помещать личный known_hosts
в репозиторий. (Потенциально вы можете настроить специальный профиль Dev Maven, который, например, копирует known_hosts
в src/main/jib
, используя цель copy-resources
из плагина Maven Resources.)
Вы также можете установить некоторый контейнер конфигурации, включая порты в Jib.
<configuration>
<container>
...
<ports>
<port>8888</port>
</ports>
</container>
</configuration>
Наконец, потому что вы используете jib:dockerBuild
, который, я думаю, docker login
не нужен.