В моем предыдущем Статья Я говорил об использовании Java 10 построить и запустить свой Весенний ботинок приложение. Теперь пришло время поговорить, как поместить его в контейнер Docker. Лучшая поддержка контейнеризации была одной из основных особенностей выпуска Java 10. Итак, начнем!
Это довольно простой процесс, так что просто посмотрите на следующий фрагмент кода:
Здесь, как вы можете видеть, я использую многоэтапный файл сборки Docker. Быстрое примечание: многоэтапные сборки поддерживаются Docker 17.05 Или выше, но результат изображение является обратным совместимым (по крайней мере, из моего опыта). На первом этапе он загружает JDK От Oracle’s, но может иметь смысл хранить свою собственную копию где -то ближе к вашему серверу сборки, поскольку она не такая маленькая — немного меньше, чем 200 МБ. Таким образом, он загружается, необработано и готово к использованию. Но не так быстро.
Как вы, вероятно, помните, Java 9 дал нам модульную систему и JDK сам также модульный. Это означает, что нам не нужно приносить целое JDK Для производства, но мы могли бы создать нашу собственную полосатую версию специально для потребностей нашего приложения. Для этого предусмотрен инструмент Jlink. Просто посмотрите, как это используется в процессе сборки. В перечисленных модулях должно быть достаточно, чтобы запустить типичный Весенний ботинок заявление. В моем производственном чехле мне пришлось поставить Java.scripting, jdk.scripting.nashorn также в список.
На втором этапе он копирует результаты из предыдущего, определяет некоторые переменные среды, разоблачает порт, копию запуска.sh и артефакт приложения. Совсем не ракетостроение.
И вот сценарий запуска.sh, который я только что упомянул:
Это всего лишь маленький помощник, чтобы гарантировать, что есть все важные вещи и т. Д. Но, конечно, это необязательно.
И этого должно быть достаточно, чтобы поместить ваше приложение в производство. Пожалуйста, поместите несколько комментариев, если у вас есть некоторые мысли, как сделать это лучше!
Оригинал: «https://dev.to/gimlet2/dockerizing-java-10-spring-boot-app-3b4c»