Javaアプリケーション用のDockerイメージの作成
JavaアプリケーションをDockerコンテナとして複数の方法で構築できます。ただし、このソリューションでは、gradleを使用することになります。
Dockerfileを生成するには、gradle-docker-plugin
というグレード可能なプラグインを使用します。
-
プラグインを含むように
build.gradle
ファイルを編集します。build.gradle
の各ブロックで、既存のリポジトリおよびプラグインのエントリも表示されます。- プラグインにプルするビルド・スクリプトの変更を追加します。
buildscript { repositories { maven { url 'https://plugins.gradle.org/m2/' } } dependencies { classpath 'com.bmuschko:gradle-docker-plugin:4.3.0' } }
jcenter
rootレベルのリポジトリを追加します(プラグインの依存性はjcenter
によって配布されます)。repositories { jcenter() }
- プラグインを適用します。
apply plugin: 'application' apply plugin: 'com.bmuschko.docker-java-application' mainClassName = 'hello.Application'
- Jarタスクを追加します。これにより、Dockerイメージにプルするjarファイルが作成されるためです。
jar { enabled = true baseName = 'gs-accessing-data-rest' version = '0.1.0' }
- メタデータを取得するようにグラディルプラグインを構成します。これは、
openjdk:8
イメージに基づいたDockerfileを生成し、コンテナにポート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' } }
- プラグインにプルするビルド・スクリプトの変更を追加します。
- 「
gradle/wrapper/gradle-wrapper.properties
」を編集し、distributionUrl
の値を変更してアップグレード可能バージョンを更新します。distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
- イメージを作成します。
./gradlew clean jar dockerBuildImage
build.gradle
に加えて、アプリケーションとDockerfileが生成され、Docker buildが実行されてコンテナのイメージが生成およびタグ付けされています。
これを検証するには、ローカル・リポジトリにDockerイメージをリストします。端末から次のものを実行します。
docker images