31
27

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.

Docker+Spring-boot事始め

Last updated at Posted at 2019-03-06

はじめに

JavaというかSpringを触っている今日このごろ。
ついでにDockerで動かそうと思ったのでその設定をしていく。

前提

Dockerが使えること。
設定方法については割愛。

環境

  • OS: macOS Mojave
  • Docker: Docker for Mac v2.0.0.3

Java(Spring boot)の設定

雛形ダウンロード

サクッと雛形をSpring Initializrで作成する。
指定したのは下記の通り。書いてないとこは何でも良いと思う。

項目 内容
Project Gradle project
Language Java
Spring boot 2.2.0(SNAPSHOT)
packaging jar
Java version 11
Dependencies Lombok,Web

ちょっとアプリ改修

このままでも動くけど動くだけなので軽く修正を加えることにする。
内容はただ単にレスポンスを返せるようにするだけ。
まず、自動生成されたクラスと同列にIndexController.javaを作成する。
作成したファイルの内容は下記の通り。

$ touch src/main/java/...(package)/IndexContoroller.java
package hoge;

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

@RestController
public class IndexController {

    @GetMapping("index")
    public String getIndexPage() {
        return "Hello World!";
    }
}

Dockerの設定

Dockerfileをちまちま書いていく。
調べた感じみんなローカルでビルドした後Dockerで動かしているのが多かったけど、
全部Dockerでやりたいので必要なファイルをコピってビルド & 実行。
ホントはこんなCOPY連打しないほうが良いんだろうけど、対処法がわからないので一旦こうする。

Dockerfile

FROM openjdk:latest

RUN mkdir /app
WORKDIR /app
COPY ./gradlew /app
COPY ./build.gradle /app
COPY ./settings.gradle /app
COPY ./src /app/src
COPY ./gradle /app/gradle
ENTRYPOINT ["sh", "./gradlew", "bootRun"]

実行

準備が終わったので実行してみる。
ローカルから叩いてちゃんとレスポンスが取れればOK。

$ docker build -t spring-docker ./
# Springがport8080で起動するのでローカルからは3000にする
$ docker run -p 3000:8080 spring-docker

問題なく起動したら適当にcurlで確認してみる。
下記のようになればOK。

$ curl localhost:3000/index
  Hello World!

まとめ

今回はDocker + Spring bootの設定をしてみた。
思ってたより楽だったし、久しぶりにJavaも触りたいのでもうちょっと何かを作ってみたいところ。
上でも書いたけど、意外とDocker上でビルドとかしないんだろうか。。。
それでは今回はこの辺で。

31
27
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
31
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?