doilux’s tech blog

ITに関する備忘録。 DDP : http://doiluxng.hatenablog.com/entry/2018/01/01/195409

gradleのDockerプラグインを使ってイメージを作る

github.com

gradleのDockerプラグインを使って事前に準備しているDockerFileからイメージを作りたい。基本的には上記の通りにやったらできました。

ディテクトリ構成はこんな感じです

...
├── build.gradle
├── docker
│   ├── centos
│   │   ├── Dockerfile <- これを元にイメージを作ります。
│   │   └── sql
│   │       ├── 1_create_database_and_user.sh
│   │       └── 2_create_db_objects.sh
│   └── debian
│       ├── Dockerfile
│       └── docker-entrypoint.sh
├── gradle
│   ├── docker.gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
...
...
apply from: 'gradle/docker.gradle'
...
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.bmuschko:gradle-docker-plugin:3.2.4'
    }
}

// use fully qualified class name
apply plugin: com.bmuschko.gradle.docker.DockerRemoteApiPlugin

import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage

task buildImage(type: DockerBuildImage) {
    // Input directory containing the build context.
    inputDir = project.file('docker/centos')

    // The Dockerfile to use to build the image.
    dockerFile = project.file('docker/centos/Dockerfile')
    tag = 'ddd-sample-kotlin/datastore:latest'
}

以下のコマンドでイメージを作れます。

./gradlew buildImage