为 Java 应用程序创建 Docker 映像

您可以通过多种方式构建 Java 应用程序作为 Docker 容器。但是,在此解决方案中,您将使用个人模块。

使用名为 gradle-docker-plugin 的 gradle 插件可生成 Dockerfile。

  1. 编辑 build.gradle 文件以包括插件。在 build.gradle 的各自块中,以及现有资料档案库和插件的条目:

    1. 添加构建脚本更改以提取插件。
      buildscript {
              repositories {
                  maven {
                      url 'https://plugins.gradle.org/m2/'
                  }
              }
              dependencies {
                 classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
              }
          }
      
    2. 添加 jcenter 根级别资料档案库(插件相关性通过 jcenter 分布)。
      
      repositories {
          jcenter()
      }
    3. 应用插件。
      apply plugin: 'application'
      apply plugin: 'com.bmuschko.docker-java-application'
      
      mainClassName = 'hello.Application'
    4. 添加 jar 任务 , 因为这将创建要提取到 Docker 映像的 jar 文件。
      
      jar {
          enabled = true
          baseName = 'gs-accessing-data-rest'
          version = '0.1.0'
      }
    5. 配置 gradle 插件以检索元数据。这指示插件生成基于 openjdk:8 映像的 Docker 文件,在容器上公开端口 8080,然后将该图像标记为 omc-sample-app:0.1。将租户和资料档案库名称替换为有效值。如果使用的资料档案库名称不存在,则只要您具有资料档案库创建权限,就会为您创建资料档案库。
      docker {
          javaApplication {
              baseImage = 'openjdk:8'
              maintainer = 'Your Name "your.email@company.com"'
              ports = [8080]
              tag = 'region-code.ocir.io/my-tenant/my-repo/omc-sample-app:latest'
          }
      }
      
  2. 编辑 gradle/wrapper/gradle-wrapper.properties 并更改 distributionUrl 的值以更新抓取版本:

    distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip

  3. 构建图像。

    ./gradlew clean jar dockerBuildImage

build.gradle 前面的添加将生成应用程序和 Dockerfile,并运行 Docker 构建以生成和标记容器的图像。

可以通过列出本地资料档案库中的 Docker 图像来验证此问题。从终端运行以下操作 :

docker images