Spring Bootのアプリ作成
1. Spring InitilizarでHelloWorldのアプリ作成
以下のリンクをクリックして、Generateでダウンロード
2. HelloWorldのコントローラーを作成
HelloWorldを表示するアプリ作成。
HelloWorld.java
@RestController
public class HelloWorld {
@RequestMapping("/")
public String helloWorld() {
return "hello world";
}
}
以下のURLをクリックすると、ローカル環境にアクセスできることを確認
3. Githubにデータをプッシュする
上記の作成したモジュールをGitに追加する
4. Dockerファイルを用意する
・ できるだけ軽量コンテナを使用する(alpineを使用する)
・ コンテナ内でのGradleのインストールは不要
・ gradlew bootRunでコンパイルから実行まで実施する
Dokcerfile
FROM openjdk:8-alpine
RUN apk update && \
apk upgrade && \
apk add --no-cache \
bash \
curl-dev \
ruby-dev \
build-base \
git
RUN mkdir /usr/app
WORKDIR /usr/app
# アプリケーションをダウンロード
RUN git clone https://github.com/harutotanabe09/SpringBootHelloWorld.git .
# アプリケーションを実行
ENTRYPOINT ["sh", "./gradlew", "bootRun"]
5. Dockerコマンドでためす
・上記で作成したDockerFileのディレクトリで以下実行
・DockerFileのimageのビルド&コンテナ起動する (rmオプションで実行停止したときプロセス削除)
# ビルドコマンド
docker build -t my-java-app .
# 実行
docker run -p 3000:8080 my-java-app --rm
6. Docker-Compose作成
・上記で作成したDockerFileをコマンド1つで実行できるようにするためにDocker-Composeを作成
docker-compose.yml
version: "3.7"
services:
javaapp:
build: .
ports:
- "3000:8080"
・docker-compose up
を実行してみる
・ローカルで動いていることを確認
7. 作成したDockerFileとDockerComposeをGithubにプッシュ
・サンプルとして以下に配置