1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Spring Bootをgradle build with Docker

Posted at

長いことビルドはmaven派でしたがgradleを使う必要性が出てきたので備忘録として
Spring Bootをdockerを使ってgradle buildしていく
マルチステージビルドにしてCloud RunもしくはECSにデプロイする手順も後日公開予定

Spring Bootプロジェクトの作成

Spring Initializr https://start.spring.io/
を使ってSpring Bootプロジェクトの雛形を作成する

Project
Gradle Projectに変更
Dependencies
ADD DEPENDENCIES...からSpring Webを選択

1.png

GENERATEをクリックするとzipファイルのダウンロードが開始
解凍した中身がプロジェクトファイルになっている

プロジェクトを開く

テキストエディタでもIDEでも何でもいいのでプロジェクトを開く
今回は普段使わないIntelliJ IDEAの手順を記載

File → New → Project from Existing Source → 解凍したフォルダを選択 → Open
Import project from external modelをチェック → Gradleを選択 → Finish

コントローラー追加

初期状態ではコントローラーが無いためシンプルな文字列を返すコントローラーを追加していく
プロジェクト/src/main...の下にある~Application.javaと同じパッケージにHelloController.javaを作成する

HelloController.java
package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Hello Spring Boot!";
    }

}

IDEを使っている人はこの時点でSpring Bootアプリケーションを実行して動作確認ができる
アプリケーションを実行してlocalhost:8080にアクセス
Hello Spring Boot!
が表示されれば正常に動作できている

IntelliJ IDEAの場合は右端のGradleから実行できる

Dockerfile作成

プロジェクトの直下にDockerfileを作成する
ファイルをコピーしてビルドコマンドを実行するだけの簡単なイメージ

Dockerfile
FROM gradle:6.7.1-jdk11
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
CMD ["gradle", "build", "bootJar"]

gradle:6.7.1-jre11をベースイメージに使うとビルド中にヌルポで落ちる
jdkのイメージは大きいので本当であれば避けたい

Dockerビルド & 起動

コンソールでプロジェクトのディレクトリに移動して以下のコマンドを実行

docker build -t bootbuilder:v0.1 . 
docker run -it --rm -v "$PWD":/home/gradle/src bootbuilder:v0.1

~build/libs内にjarが作成されていればビルド完了

参考資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?