Продолжение руководства по интеграции Windows и Docker . Цель этого поста — показать быстрый и простой способ создания нового проекта JVM и запустить его в качестве контейнера Docker в Windows .
В предыдущем посте я описал, как настроить среду Docker на ПК под Windows и запустить существующий контейнер Docker . Теперь пришло время создать собственный проект JVM , создать образ Docker и запустить его.
Когда дело доходит до быстрого прототипирования чего-либо на платформе JVM — Groovy — отличный выбор языка. Кроме того, использование Groovy в этом руководстве является прекрасным примером многоязычного характера микросервисов JVM базе Docker . Для инструмента сборки мой естественный выбор — Gradle , который также будет использоваться в этом руководстве.
Настройте Gradle с помощью sdkman
Gradle можно установить и добавить в PATH вручную, но существует инструмент sdkman , который значительно упрощает установку Gradle и других утилит. Итак, я бы посоветовал потратить несколько минут, чтобы настроить его и использовать для установки Gradle .
- Прежде всего следует установить
unzip, так как это требуется для установщикаsdkman. В новой консолиbashвыполните.1$ pacman -S unzip - Затем установите
sdkman.1$ export SDKMAN_DIR="$HOME/.sdkman"&& curl -s get.sdkman.io | bash - После установки могут возникнуть проблемы с запуском
sdkmanв средеmsys2. Причина объяснена в соответствующем выпуске GitHub- Чтобы исправить это, откройте файл
~/.sdkman/bin/sdkman-init.shи найдите строку.1if[[ -n"${CANDIDATE_NAME}"&& -h"${CANDIDATE_DIR}"]]; then - Замените это на.
1
if[[ -n"${CANDIDATE_NAME}"&& -d"${CANDIDATE_DIR}"]]; then
- Чтобы исправить это, откройте файл
- Теперь
sdkmanготов, откройте новую консольbashи установите последнюю версиюGradle.1$ sdk install gradle - Убедитесь, что
Gradleбыл установлен правильно (может потребоваться открытие новогоbash).0102030405060708091011121314$ gradle --version------------------------------------------------------------Gradle2.9------------------------------------------------------------Build time:2015-11-1707:02:17UTCBuild number: noneRevision: b463d7980c40d44c4657dc80025275b84a29e31fGroovy:2.4.4Ant: Apache Ant(TM) version1.9.3compiled on December232013JVM:1.8.0_45 (Oracle Corporation25.45-b02)OS: Windows8.16.3amd64
Образец Groovy приложения
- Структура папок проекта может быть сгенерирована с помощью задачи
Gradle.1$ gradle init --type groovy-library - После генерации
Library.groovyиLibraryTest.groovyмогут быть удалены. - Создать главное приложение class.ua.eshepelyuk.blog.Hello.groovy
123
packageua.eshepelyuk.blogprintln"Hello from Docker by Groovy and Gradle"(1)(1) объявление
public static void mainможет быть опущено вGroovyХотя
gradle initгенерирует скрипты- обертки Gradle , я не буду использовать их в этом руководстве. Для реальных проектов я бы предложил использовать обертку и не полагаться на локальную установкуGradle.Включить поддержку Docker для скрипта сборки проекта
При использовании
Gradleвам не нужно иметь дело сDockerfileи другими вещами для создания образаDocker. Для этого есть плагины :))Чтобы включить и настроить их, просто добавьте несколько строк в
build.gradleкак описано ниже.Включить плагины
build.gradle
12345plugins {id'groovy'id'application'(1)id'com.bmuschko.docker-java-application'version'2.6.1'(2)}(1) Плагин для создания работающего приложения, которое может быть встроено в образ
DockerНастроить плагины
build.gradle
12345678mainClassName ='ua.eshepelyuk.blog.Hello'(1)docker {url = System.env.DOCKER_HOST.replaceAll("tcp","https") (2)javaApplication {tag ="eshepelyuk/hellodockergradle:latest"(3)}}(1) Точка входа для плагина
application(2) Исправление URL-адреса док-машины для Java API
(3) Имя тега изображения
DockerСоздайте образ и запустите контейнер Docker
Прежде чем перейти к дальнейшим действиям, необходимо запустить скрипт
start.shизDockerдля установки Windows. Пожалуйста, обратитесь к предыдущему сообщению для деталей.- Выполните команду для создания образа
Docker.1$ gradle dockerBuildImage - Проверьте, доступно ли новое изображение, запустив
docker image. Вывод команды должен включать новое изображение с тегомeshepelyuk/hellodockergradle(настройка изbuild.gradle).12345$ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE..eshepelyuk/hellodockergradle latest daa12bd8bb4f About a minute ago649MB.. - Запустите контейнер с помощью
docker runи проверьте вывод на соответствие ожидаемому классуHello.groovy.12$ docker run eshepelyuk/hellodockergradleHello from Docker by Groovy and Gradle
Полный код проекта доступен на My GitHub
Ссылка: Микросервисы JVM — приложение на основе JVM в качестве контейнера Docker от нашего партнера по JCG Евгения Шепелюка в блоге jk . - Выполните команду для создания образа