Полный демо-адрес github примера в этой статьеGitHub.com/modelnet/…
Если вы хотите понять и использовать джиб, вы должны сначала знать или использовать докер, Только на этой основе вы можете понять, что делает джиб и какие проблемы он решает.
Для начала рассмотрим на примере, как просто контейнеризировать spring-boot проект, Если вы никогда этого не делали, то можете реализовать сами, либо внимательно прочитать эту статьюПервое весеннее загрузочное приложение создано, запущено и опубликовано через Docker.. Вы можете обнаружить, что если вам нужно контейнеризовать java-проект, это громоздкий и относительно сложный процесс.Сначала вам нужно написать dockerfile, а затем собрать dokefile.Если вам нужно отправить в реестры, вам также нужно перейти через операцию проталкивания. Хотя сборка и отправка по-прежнему очень просты. Но писать dockerfile действительно хлопотно, да и стоимость обучения высока, посмотрите на официальном сайте.Dockerfile referenceЯ не хочу больше учиться. Итак, есть ли простой способ? Просто запомните несколько простых команд, и вы сможете запустить его. Это так же просто, как «mvn spring-boot: run». В это время на сцену выходит Джиб, и он здесь, чтобы выполнить эту великую миссию. .
Если вы не понимаете, для чего используется стрела, рекомендую прочитатьИнструмент Jib для создания образов Java с открытым исходным кодом от Googleпервая половина или прочитатьОфициальный джиб: GoogleContainerTools/jib.
Далее мы в основном расскажем, как его использовать (способ maven).
Контейнерный push-проект Java в реестры
Внедрить jib очень просто, он интегрирован в проект в виде плагина maven, вам нужно всего лишь ввести в свой проект следующий код.
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.6</version>
<configuration>
<from>
<!--base image-->
<image>openjdk:alpine</image>
</from>
<to>
<!--<image>registry.cn-hangzhou.aliyuncs.com/m65536/jibtest</image>-->
<!--目标镜像registry地址,为了方便测试,你需要换成自己的地址,如果你的网络不好,可以选用国内加速器,比如阿里云的-->
<image>registry.hub.docker.com/moxingwang/jibtest</image>
</to>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
Это просто самая простая конфигурация, такая как конфигурация аутентификации реестра, конфигурация jvm и т. Д., Вы можете обратиться к github jib для получения подробных инструкций.jib/jib-maven-plugin/.
создай свой образ
mvn compile jib:build
Возможно, сразу после выполнения этого шага вы получите сообщение об ошибке с сообщением «Неавторизовано», не волнуйтесь, эта команда должна зафиксировать созданный образ и отправить его в удаленный реестр (registry.hub.docker.com здесь), вы можете следовать [[ Распространенная ошибка 1] метод решения проблемы.
Если скорость вашего интернета немного ниже, это может быть «Завершение...» на последнем шаге, но это не имеет значения, можно немного подождать, пока не появится «УСПЕШНАЯ СБОРКА». Наконец, полный проект Java создается в виде образа и помещается в реестр. Затем вы можете протестировать изображение, которое вы только что отправили.
Открытымhub.docker.com/, вы обнаружите, что ваш образ был успешно создан.
- Докер использует изображения
docker run -it --rm -p8080:8080 registry.hub.docker.com/moxingwang/jibtest
Таким образом, образ весенней загрузки успешно запущен. swagger-iu интегрирован в демо-версию этой статьи. После успешного запуска проекта мы можем перейтиhttp://localhost:8080/sw/swagger-ui.htmlAccess, вы можете успешно открыть swagger в браузере.
Создайте образ прямо в локальном докере
Чтобы использовать этот метод сборки, прежде всего, вы должны убедиться, что докер был установлен и переменные среды настроены правильно, поскольку этот метод jib полагается на выполнение команды докера, вам также необходимо убедиться, что служба была запущена. (выполните docker --version в терминале, чтобы вернуться правильно).
mvn compile jib:dockerBuild
Далее действуйте напрямую, сначала проверьте существующие локальные образы
docker iamges
Выполнить компиляцию mvn jib:dockerBuild
Вы можете видеть, что локальный образ был успешно создан. можно запустить напрямую
docker run -it --rm -p8080:8080 moxingwang/jibtest
После успешного запуска вы также можете получить прямой доступhttp://localhost:8080/sw/swagger-ui.htmlпафосная страница.
Распространенные ошибки
Распространенная ошибка 1. Не удалось выполнить цель com.google.cloud.tools:jib-maven-plugin:0.9.6:build (default-cli) в проекте jib: не удалось создать образ, возможно, вам следует установить имя помощника учетных данных в конфигурации '' или установите учетные данные для 'registry.hub.docker.com' в настройках Maven: Несанкционировано дляRegistry.hub.docker.com/moxingwang/jibtest: 401 Несанкционировано
Аутентификация требуется при извлечении или отправке данных из частных реестров. Прочитайте официальные инструкции и следуйте инструкциям.Authentication Methods. Если вы уже подписаны на docker на своем локальном компьютере, операция упрощается: вы можете войти в реестры напрямую с помощью команды docker, а затем продолжить другие операции jib.
- registry.hub.docker.com
docker login --username=你的hub.docker的用户名 registry.hub.docker.com
- registry.cn-hangzhou.aliyuncs.com
docker login --username=阿里云docker用户名 registry.cn-hangzhou.aliyuncs.com