Criar uma Imagem do Docker para o Aplicativo Java

Você pode criar aplicativos do Java como contêineres do Docker de várias maneiras. No entanto, nesta solução, você usará gradle.

Use um plug-in de classificação chamado gradle-docker-plugin para gerar o Dockerfile.

  1. Edite o arquivo build.gradle para incluir o plug-in. Nos respectivos blocos de seu build.gradle junto com as entradas de repositórios e plug-ins existentes:

    1. Adicione as alterações do script de build para abrir o plug-in.
      buildscript {
              repositories {
                  maven {
                      url 'https://plugins.gradle.org/m2/'
                  }
              }
              dependencies {
                 classpath 'com.bmuschko:gradle-docker-plugin:4.3.0'
              }
          }
      
    2. Adicione o repositório de nível raiz jcenter ( as dependências de plug-in são distribuídas por meio do jcenter).
      
      repositories {
          jcenter()
      }
    3. Aplique o plug-in.
      apply plugin: 'application'
      apply plugin: 'com.bmuschko.docker-java-application'
      
      mainClassName = 'hello.Application'
    4. Adicione a tarefa jar, pois ela cria o arquivo jar que você extrairá à imagem do Docker.
      
      jar {
          enabled = true
          baseName = 'gs-accessing-data-rest'
          version = '0.1.0'
      }
    5. Configure o plug-in de classificação para recuperar metadados. Isso instrui o plug-in a gerar um Dockerfile baseado na imagem do openjdk:8, expor a porta 8080 no container e, em seguida, marcar a imagem como omc-sample-app:0.1. Substitua o tenancy e o nome do repositório por valores válidos. Se você usar um nome de repositório que não existe, ele será criado para você, desde que tenha privilégios de criação de repositório.
      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. Edite gradle/wrapper/gradle-wrapper.properties e altere o valor de distributionUrl para atualizar a versão de classificação:

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

  3. Crie a imagem.

    ./gradlew clean jar dockerBuildImage

A adição anterior ao build.gradle gera a aplicação e o Dockerfile e executa o build do Docker para gerar e marcar a imagem para o contêiner.

Você pode verificar isso listando as imagens Docker em seu repositório local. Execute o seguinte em um terminal:

docker images