Рубрики
Uncategorized

Jib — мощный строитель изображений Docker

Введение Что такое джиб? JIB — это библиотека, созданная Google, чтобы помочь вам сгенерировать Docker … Tagged с DevOps, Java, Kubernetes.

Мощные инструменты (19 части серии)

Введение

Что такое джиб? JIB — это библиотека, созданная Google, чтобы помочь вам сгенерировать изображения Docker ваших Java Projects без Docker локально.

Что это значит?

Глобальная презентация

Классическим образом, мы должны иметь Dockerfile в нашем Java Project. Создайте изображение Docker с помощью командных строк и поставьте его в реестр. Таким образом заставляет нас иметь Docker на местном уровне, чтобы иметь возможность создавать изображение и иметь некоторые знания о Docker и о том, как построить Dockerfile.

Новый путь, предложенный Google, намного более упрощен. Теперь у нас есть элемент входа (проект) и 1 шаг (сборка) в процессе. Нам больше не нужен Docker на местном уровне. И разработчики должны настраивать только некоторые элементы для создания изображения, которое мы хотим.

Техническая презентация

Чтобы иметь возможность использовать JIB, у вас есть 3 способа сделать это:

Мы поговорим немного больше о первом.

Плагин Maven — база

В простейшей форме реализация плагина Maven выглядит так.


  ...
  
    
      ...
      
        com.google.cloud.tools
        jib-maven-plugin
        2.5.2
      
      ...
    
  
  ...

Это просто, просто объявление в разделе сборки. Но с этим вы можете только генерировать локальный .tar Файл со следующей командой.

mvn compile jib:buildTar

Если вы попытаетесь создать Dockerimage и подтолкнуть его в реестр с этой конфигурацией, вы быстро увидите, что вам нужно больше параметров.

> mvn compile jib:build
...
[ERROR] Failes to execute goal com.google.cloud.tools:jib-maven-plugin:2.5.2:build (default-cli) on project jib-demo: Missing target image parameter.

С документацией у вас есть два варианта, чтобы предоставить необходимые данные:

  • В параметре команды: -Дамаж
  • В конфигурации POM

Вот минимальная конфигурация для генерации изображения Docker и натолкнуть его в библиотеку с командой MVN Compile Jib: Build Анкет


    
        
            com.google.cloud.tools
            jib-maven-plugin
            2.5.2
            
                
                    docker.io/my-docker-id/my-app
                
            
        
    

Если вы хотите подтолкнуть изображение Docker в личный репозиторий, это также возможно со следующими параметрами. В этом месте вы также можете добавить другие конфигурации, такие как теги …


    docker.io/my-docker-id/my-app
    
        dockerRegistry_username
        dockerRegistry_password
    

Плагин Maven — параметры

Поскольку можно определить много вещей для будущих изображений Docker, вы можете определить некоторые элементы для вашей основы изображения.

По умолчанию JIB будет использовать Distoless Изображение, которое содержит только минимум для Linux и время выполнения OpenJDK. Но по нескольким причинам вам могут понадобиться другие инструменты, такие как терминал или завиток. Это цель от параметр. Вы можете определить изображение для использования с его версией и учетными данными, если изображение находится в частном реестре.


    openjdk:alpine


    docker.io/my-docker-id/my-app
    
        dockerRegistry_username
        dockerRegistry_password
    

Также у вас есть так много вариантов настройки вашего изображения, например:

  • Extradirectories которые вводят файлы в изображение и определяют их права на изображении

  
    
      
      src/main/custom-extra-dir
      
      
        /home/user/jib-extras
        /extras
      
    
    
      
        /path/on/container/to/fileA
        755 
      
      
        /path/to/another/file
        644 
      
      
        /glob/pattern/**/*.sh
        755
      
    
  

  • jvmflags Чтобы добавить флаги JVM

    
        -Duser.timezone=America/Montreal
        -XX:MetaspaceSize=96m 
        -XX:MaxMetaspaceSize=256m
        -Djava.net.preferIPv4Stack=true
        -Xss228k
        -XX:+HeapDumpOnOutOfMemoryError
        -XX:HeapDumpPath=/tmp
    

  • порты Чтобы определить, какие порты должны быть выставлены

    
        8080
        9999
    

  • среда определить переменные среды

  
      pwd
      usr
  

Если вам нужна дополнительная информация, пожалуйста, проверьте плагин Maven Readme: https://github.com/googlecontainertools/jib/tree/master/jib-maven-plugin

Если вы не Java Dev, вы можете проверить проект rules_docker который может делать то же самое для других языков, как:

  • Питон
  • Nodejs
  • Ява
  • Скала
  • Groovy
  • C
  • Идти
  • Ржавчина
  • D (Я не использую это или даже не пытаюсь, я хочу упомянуть их, потому что Google упоминает их, и это может быть действительно полезно.)

Источники

Джиб

Правила Docker

Мощные инструменты (19 части серии)

Оригинал: «https://dev.to/adaendra/jib-a-powerful-docker-image-builder-3437»