はじめに
こんにちは、イエノカドです。
普段は、RubyやPHPをメインにプログラミングしているんですが、
久しく使っていなかった、Spring Boot + Javaの環境構築をしてみたいと思います。
静的型付け言語(コンパイルするやつ)については、
少し苦手意識があるんですが、Javaは本当にいろんなアプリでよく使われてますし、
今後スマホアプリの開発に取り組んでいきたい方については、勉強になるので、
一度はチャレンジしておきたいところですよね。
Javaを使ってみたい方は必見かもしれません。
では早速やっていきたいと思います。
Spring Boot + Javaの設定手順
1. Docker for Mac のインストール
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. 実行したアプリケーションにアクセスする
上記にアクセスして、「Hello World」と表記されたらOKです!
参考


GradleでのビルドをVS codeでやってしまう方法もあるのでこちらも挑戦してみたいと思ってます。
最後に
いかがだったでしょうか?
個人的には比較的簡単かつ時間もそこまでかからずに
環境構築できてしまったのではないかと思います。
おそらく日頃の行いが良かったんでしょうか。笑
トータルで言うと10分かからないぐらいでできてしまいました。
こちらも初心者でもすぐに環境ができてしまうので、
Dockerを使えば本当に簡単に環境ができてしまうなあ〜。
ではまた、お会いしましょう。
コメント
docker-compose exec java bashではログインできません。
$ docker exec -it [コンテナ名] bash ではないですか?