Появление контейнеров как никогда приблизило разработчиков Java к рабочему процессу «написать один раз, запустить где угодно», но контейнеризация Java-приложения непроста: вам нужно написать Dockerfile для запуска демона Docker от имени пользователя root, дождаться завершения сборки. завершить и, наконец, отправить образ в удаленный реестр. Но не все Java-разработчики являются экспертами в области контейнеров. Наступили ли дни, когда вам просто нужно собрать пакет JAR, как раньше?
Чтобы решить эту проблему, Google открыл исходный код Jib, инструмента контейнеризации Java, который позволяет разработчикам Java создавать контейнеры с помощью знакомых им инструментов Java. Jib — это быстрый и простой инструмент для создания образа контейнера, который выполняет все шаги, необходимые для упаковки приложения в образ контейнера. Вам не нужно писать Dockerfile или устанавливать Docker, и он интегрируется непосредственно в Maven и Gradle — просто добавьте плагин в свою сборку, и вы сможете мгновенно контейнеризовать свои Java-приложения.
Процесс сборки докера:
Процесс сборки стрелы:
ВКак Jib помогает разработчикам работать лучше
Jib использует многоуровневый механизм образов Docker, интегрирует его с системой сборки и оптимизирует сборку образов контейнеров Java за счет:
- Простой — Jib разработан на Java и работает как часть Maven или Gradle. Вам не нужно писать Dockerfile или запускать демон Docker или даже создавать большой JAR со всеми зависимостями. Поскольку Jib тесно интегрирован с процессом сборки Java, он имеет доступ ко всей информации, необходимой для упаковки приложения. Во время последующих сборок контейнера он автоматически подберет любой вариант, созданный Java.
- Быстрота — Jib использует многослойность образов и кэширование реестра для быстрой инкрементной сборки. Он считывает вашу конфигурацию сборки, организует ваше приложение на разные уровни (зависимости, ресурсы, классы), а также перестраивает и отправляет только те слои, которые изменились. Jib экономит драгоценное время сборки, отправляя в реестр только измененные слои (а не все приложение), когда проект быстро повторяется.
- Воспроизводимость — Jib поддерживает декларативные сборки образов контейнеров на основе метаданных сборки Maven и Gradle, поэтому один и тот же образ можно создавать повторно с помощью конфигурации, пока входные данные остаются теми же.
Как использовать JIB для контейнерации вашего приложения
JIB можно использовать как плагины Maven и Ridle, и нужно только сделать минимальную конфигурацию. Просто добавьте плагин, чтобы создать и настроить определение целевого изображения может быть. Если вы хотите подтолкнуть зеркальный частный реестр, чтобы настроить необходимые клавиши к JIB. Самый простой способ состоит в том, чтобы использовать помощник Voucher Assistant Docker-Credent-GCR, как. Jib также предоставляет ряд других правил для построения зеркала до Docker Daemon.
Использование Jib с Maven:
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.0</version>
<configuration>
<to>
<image>gcr.io/my-project/image-built-with-jib</image>
</to>
</configuration>
</plugin>__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__# Builds to a container image registry.
$ mvn compile jib:build
# Builds to a Docker daemon.
$ mvn compile jib:dockerBuild
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__
Использование Jib с Gradle:
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__plugins {
id 'com.google.cloud.tools.jib' version '0.9.0'
}
jib.to.image = 'gcr.io/my-project/image-built-with-jib'
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__# Builds to a container image registry.
$ gradle jib
# Builds to a Docker daemon.
$ gradle jibDockerBuild
__Fri Jul 13 2018 15:33:01 GMT+0800 (CST)____Fri Jul 13 2018 15:33:01 GMT+0800 (CST)__
Адрес джиб-проекта:GitHub.com/Google с….