Эффективно создавайте образы Docker с помощью пакетов сборки

Spring Boot облачный носитель

1. Введение

Spring Boot 2.3.0.RELEASEОн был официально выпущен в течение нескольких дней, и есть новая функция:Код приложения Spring Boot может быть упакован непосредственно как образ Docker.. Что это за технология? Я быстро зашел на официальный сайт и проверил его, прежде чем узнал, что он основан на нативном облаке.Buildpacksтехнология, которая напрямую преобразует код в образ контейнера, это означает, что вам не нужно писатьDockerfileфайл.

ноSpring Boot 2.3.0.RELEASEПохоже, в плагине для создания изображений есть ошибка. Пожалуйста, дождитесь последующих исправлений.Однако соответствующие практики в этой статье не используют официальные плагины..

2. Допрос души

Прежде чем вы поймете эту технологию, давайте подумаем, как нам развиваться.JavaЧто нужно для запуска приложения?

  1. Во-первых, вам нужно написать код бизнес-логики, который является самым простым.
  2. Среда конфигурации вашего приложения также может статьProfile,НапримерSpring Bootв приложенииapplication.ymlконфигурация среды.
  3. конкретное место,Javaнужно бежатьJVMС другой стороны, другие языки также соответствуют конкретным средам, которые их требуют.
  4. среды выполнения, такие как нашаSpring BootПриложения также могут зависеть от другого промежуточного программного обеспечения, сторонних библиотек и т. д.

Было бы неплохо, если бы у нас был инструмент для решения этих проблем, мы могли бы быстро реализовать рабочий процесс от исходного кода до среды выполнения.

3. По сравнению с Dockerfile

Buildpacksзаключается в том, чтобы решить эту проблему. Это не повторяющееся колесо! знаком с намиDockerfileпо сравнению с,BuildpacksПредоставляет абстракцию сборки более высокого уровня для создания приложений.

  • Снизьте нагрузку на разработчиков и поддержите управление крупномасштабными приложениями.
  • Многоязычная поддержка, существуют специальные механизмы построения пакетов для конкретных языков программирования, напримерJava,Golang,Ruby,PythonЖдать.
  • Гарантируйте безопасные и совместимые сборки приложений без вмешательства разработчика.
  • Обеспечивает автоматическую доставку обновлений зависимостей на уровне ОС и приложений, экранированиеDockerfileсложность.
  • поставкаmergeфункциональность, позволяющая нам добавлять новые функции и исправления поверх оригинала без перестройки.

2. Установите пакеты сборки

В настоящее времяBuildpacksслужба поддержкиLinux,MacOS,Windows. ты можешь начатьОфициальная документация для пакетов сборкиПолучите подробный метод установки, потому что он слишком прост и не будет введен здесь.

Не забудьте настроитьBuildpacksпеременные окружения. существуетWin10нужно бытьBuildpacksКаталог установки настроен наpathв переменных окружения.

еслиBuildpacksПутьD:\pack-v0.10.0-windows\pack.exeно:

Затем выполняется командная строкаpack version, а распечатка номера версии указывает на то, что установка прошла успешно.

УстановитьBuildpacksОбязательным условием является наличиеDockerПри запуске необходимо установить и запустить на соответствующей операционной системеDocker.

3. Создайте образ Docker из кода

Здесь мы используем стандартSpring BootПроект, который необходимо установить в корневой каталог проекта.Maven wrapper.Роль Maven Wrapper состоит в том, чтобы обнаружить, что версия Maven пользователя не соответствует ожидаемой версии, загрузить ожидаемую версию, а затем использовать ожидаемую версию для выполнения команды mvn., команда установки:

mvn -N io.takari:maven:wrapper

обычно изSpring InitializrСгенерированный проект поставляется сMaven wrapper.

После выполнения описанных выше шагов. Выполните следующую команду для сборкиDockerЗеркало:

pack build myapp --builder cnbs/sample-builder:bionic

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

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

4. Резюме

BuildpacksдаCNCFИнкубационный проект фонда, на этот разSpring Boot 2.3.0.RELEASEи его комбинация,Spring BootВажная веха в создании облачных приложений. я найду время позжеBuildpacksДля дальнейшего ознакомления, пожалуйста, обратите внимание на мой личный блогfelord.cn.

关注公众号:Felordcn获取更多资讯

Личный блог: https://felord.cn