【SE必見】Docker + Spring Boot + Javaで環境構築

Docker

はじめに

こんにちは、イエノカドです。

普段は、RubyやPHPをメインにプログラミングしているんですが、

久しく使っていなかった、Spring Boot + Javaの環境構築をしてみたいと思います。

静的型付け言語(コンパイルするやつ)については、

少し苦手意識があるんですが、Javaは本当にいろんなアプリでよく使われてますし、

今後スマホアプリの開発に取り組んでいきたい方については、勉強になるので、

一度はチャレンジしておきたいところですよね。

Javaを使ってみたい方は必見かもしれません。

では早速やっていきたいと思います。

Spring Boot + Javaの設定手順

1. Docker for Mac のインストール

Mac に Docker Desktop をインストール — Docker-docs-ja 19.03 ドキュメント

Docker上にSpring Boot + Javaを設定していくため、

上記URLからあらかじめDocker for Macをインストールしておきましょう。

2. 空のワークスペースの作成

workspaceというフォルダを作成する(既にある場合はしなくてOK)

$ mkdir ~/workspace

workspaceフォルダ配下にdocker-spring-javaフォルダを作成する

$ mkdir ~/workspace/docker-spring-java

docker-spring-javaフォルダに移動する

$ cd ~/workspace/docker-spring-java

3. docker-compose.ymlを作成

docker-spring-javaフォルダ配下にdocker-compose.ymlという名前でファイルを作成し、

以下のコードをコピペしてください。

version: '3.6'
services:
  app:
    image: openjdk:15
    ports:
      - 8080:8080
    tty: true
    volumes:
      - ./server:/srv:cached
    working_dir: /srv

4. serverフォルダを作成

$ mkdir ~/workspace/docker-spring-java/server

5. Gradle(ビルドシステム)プロジェクト作成

Gradleプロジェクト作成のサイト「Spring Initializr」にアクセス

以下の画像のように

Project: Gradle Project

Language: Java

Project Metadata: Artifactを「api」, Nameを「api」

Dependencies: 「Spring Web」, 「Lombok」, 「PostgreSQL Driver」

と設定をしてGenerateボタンをクリックしてください。

zipファイルがダウンロードされるので、

zipファイルを展開したのちに、先ほど作成したserverフォルダ配下におきましょう。(以下画像の状態)

6. Hello Worldを出力する準備

server/src/main/java/com/example/api/ApiApplication.java のファイルを編集します。

(「// 追加」と記述のある行を追加してください)

package com.example.api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping; // 追加
import org.springframework.web.bind.annotation.RestController; // 追加

@SpringBootApplication
@RestController // 追加
public class ApiApplication {

        @RequestMapping("/")  // 追加
        public String home() { // 追加
            return "Hello World"; // 追加
        } // 追加

	public static void main(String[] args) {
		SpringApplication.run(ApiApplication.class, args);
	}

}

7. Dockerの起動とGradleのビルド

Dockerを起動します。

$ docker-compose up -d

javaコンテナにログイン

$ docker-compose exec java bash

Gradleをビルドする

bash-4.4# sh gradlew build

ビルドされた結果以下のような表示がされます。

8. アプリケーションを実行する

javaコンテナ内にログインした状態で以下コマンドを実行

bash-4.4# java -jar build/libs/api-0.0.1-SNAPSHOT.jar

9. 実行したアプリケーションにアクセスする

無効なURLです

上記にアクセスして、「Hello World」と表記されたらOKです!

参考

Docker × Spring Boot環境構築 - Qiita
Docker × Spring Boot環境構築 概要 Dockerを使って、Spring Bootの環境を構築します。 動作確認として、Hello Worldをブラウザに表示させます。 環境 macOS Catal...

GradleでのビルドをVS codeでやってしまう方法もあるのでこちらも挑戦してみたいと思ってます。

最後に

いかがだったでしょうか?

個人的には比較的簡単かつ時間もそこまでかからずに

環境構築できてしまったのではないかと思います。

おそらく日頃の行いが良かったんでしょうか。笑

トータルで言うと10分かからないぐらいでできてしまいました。

こちらも初心者でもすぐに環境ができてしまうので、

Dockerを使えば本当に簡単に環境ができてしまうなあ〜。

ではまた、お会いしましょう。

コメント

  1. Zenith より:

    docker-compose exec java bashではログインできません。

    $ docker exec -it [コンテナ名] bash ではないですか?

タイトルとURLをコピーしました