LoginSignup
2
4

More than 3 years have passed since last update.

Spring Boot + Docker + Github での環境構築 クイックスタート

Last updated at Posted at 2019-10-07

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を実行してみる

image.png

・ローカルで動いていることを確認

7. 作成したDockerFileとDockerComposeをGithubにプッシュ

・サンプルとして以下に配置

ワンポイント:Gitのサブモジュールでアプリ側にGitのDockerFileを入れると見分けがしやすい
2
4
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
2
4