JVM微服务–基于JVM的应用程序作为Docker容器

WindowsDocker集成指南的延续。 这篇文章的目的是展示创建新的JVM项目并将其作为Docker容器在Windows上运行的快速简便的方法。

在上 Docker 文章中,我描述了如何在Windows驱动的PC上设置Docker环境并运行现有的Docker容器。 现在是时候创建自己的JVM项目,创建Docker映像并运行它了。

当需要在JVM平台上快速制作原型时, Groovy是绝佳的语言选择。 此外,在本指南中使用GroovyDocker支持的JVM微服务多语言性质的完美示例。 对于构建工具,我的自然选择是Gradle ,本指南也将使用它。

使用sdkman设置Gradle

可以手动安装Gradle并将其添加到PATH ,但是存在sdkman工具,该工具可以大大简化Gradle和其他实用程序的安装。 因此,我建议花一些时间进行设置并将其用于Gradle安装。

  1. 首先,应该安装unzip ,因为sdkman安装程序需要它。 在新的bash控制台中执行。
    $ pacman -S unzip
  2. 然后安装sdkman
    $ export SDKMAN_DIR="$HOME/.sdkman" && curl -s get.sdkman.io | bash
  3. 安装后,在msys2环境中运行sdkman可能会出现问题。 原因在相应的GitHub Issue中进行了解释
    1. 要修复它,请打开文件~/.sdkman/bin/sdkman-init.sh并找到该行。
      if [[ -n "${CANDIDATE_NAME}" && -h "${CANDIDATE_DIR}" ]]; then
    2. 替换为。
      if [[ -n "${CANDIDATE_NAME}" && -d "${CANDIDATE_DIR}" ]]; then
  4. 现在, sdkman已准备就绪,打开新的bash控制台并安装最新的Gradle版本。
    $ sdk install gradle
  5. 检查Gradle是否正确安装(可能需要打开新的bash )。
    $ gradle --version
    
    ------------------------------------------------------------
    Gradle 2.9
    ------------------------------------------------------------
    
    Build time:   2015-11-17 07:02:17 UTC
    Build number: none
    Revision:     b463d7980c40d44c4657dc80025275b84a29e31f
    
    Groovy:       2.4.4
    Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
    JVM:          1.8.0_45 (Oracle Corporation 25.45-b02)
    OS:           Windows 8.1 6.3 amd64

Groovy示例应用程序

  1. 通过运行Gradle任务可以生成项目文件夹结构。
    $ gradle init --type groovy-library
  2. 生成后,可以删除Library.groovyLibraryTest.groovy
  3. 创建主应用程序class.ua.eshepelyuk.blog.Hello.groovy
    package ua.eshepelyuk.blog
    
    println "Hello from Docker by Groovy and Gradle" (1)

    (1)Groovy可以省略public static void main声明

    尽管gradle init生成Gradle包装器脚本,但在本指南中我不会使用它们。 对于现实生活中的项目,我建议使用包装器,而不要依赖于本地Gradle安装。

    为项目构建脚本启用Docker支持

    使用Gradle您无需处理Dockerfile和其他用于创建Docker映像的事情。 有这个插件:))

    要启用和自定义它们,只需在build.gradle添加一些行,如下所述。

    启用插件

    build.gradle

    plugins {
        id 'groovy'
        id 'application' (1)
        id 'com.bmuschko.docker-java-application' version '2.6.1' (2)
    }

    (1)用于构建嵌入Docker映像的可运行应用程序的 插件

    (2) Docker支持插件

    自定义插件

    build.gradle

    mainClassName = 'ua.eshepelyuk.blog.Hello' (1)
    
    docker {
        url = System.env.DOCKER_HOST.replaceAll("tcp", "https") (2)
        javaApplication {
            tag = "eshepelyuk/hellodockergradle:latest" (3)
        }
    }

    (1) application插件的入口点

    (2)修复Java API的docker机器URL

    (3) Docker镜像标签名称

    构建映像并运行Docker容器

    在继续执行下一步之前,必须从Docker运行start.sh脚本以进行Windows安装。 请参阅以前的帖子以获取详细信息。

    1. 执行命令以创建Docker映像。
      $ gradle dockerBuildImage
    2. 通过运行docker image检查新映像是否可用。 命令输出应包括标记有eshepelyuk/hellodockergradle新图像(从build.gradle设置)。
      $ docker images
      REPOSITORY                        TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
      ..
      eshepelyuk/hellodockergradle   latest              daa12bd8bb4f        About a minute ago   649 MB
      ..
    3. 使用docker run启动容器,并检查输出是否与Hello.groovy类的预期匹配。
      $ docker run eshepelyuk/hellodockergradle
      Hello from Docker by Groovy and Gradle

    完整的项目代码可在My GitHub上获得

翻译自: https://www.javacodegeeks.com/2015/12/jvm-microservices-jvm-based-application-docker-container.html

你可能感兴趣的:(JVM微服务–基于JVM的应用程序作为Docker容器)