LoginSignup
1
0

More than 1 year has passed since last update.

【Docker、Spring Boot】Eclipseで作成したSpring Boot アプリを Docker で動かす

Last updated at Posted at 2023-03-28

タイトルの通り、Eclipseで作成したSpring BootアプリをDockerで動かす方法を調べたので、備忘録として書いていきます。

Spring Boot アプリから jar を作成

まず、eclipseで作成したspring bootアプリから、.jarを作成します。
.jarを作成するためのプロジェクトは、以前作成したものがあるので、中身が気になる方は以下からご確認ください。

eclipse での jar の作成の手順(Gradle)

※今回のjarの作成手順は、プロジェクトをGradleで作成しているため、Gradleでの作成手順になります。

(1)プロジェクトを開いた状態から、「ウィンドウ」>「ビューの表示」>「Gradleタスク」を選択します。
(「Gradleタスク」が無い場合は「その他」を選択して、ポップアップした項目の中から選択します)
gradle_task.png

(2)Eclipse画面下に「Gradleタスク」のタブが表示されるため、タブ内の項目で「プロジェクト名(今回の場合はtest_spring_boot)」>「build」>「bootJar」を選択し、コンテキストメニューから「Gradleタスクの実行」を押下
2_Gradle_bootjar.png

(3)jarの作成が成功すると、「プロジェクトフォルダ/build/libs」下に.jarファイルが生成されます。
(今回の場合だと、プロジェクトフォルダ名がtest_spring_boot
create_jar_after_image.png2_create_jar_after_image.png

Docker で Spring Boot アプリを起動

以降の作業では、自身のPC上でdockerコマンドが実行できることを前提としています。
今回の検証では、Windowsで作業しており、docker desktopをインストールしています。

Dockerfile の作成

以下のDockerfileを作成します。
FROMeclipse-temurin:17-jdk-alpineは、.jarを作成したときの開発環境のJavaのバージョンに合わせる必要があり、今回の場合ではJavaSE-17での開発となっています。
jarファイル名称がtest_spring_boot-0.0.1-SNAPSHOT.jarになっているため、これは各々の環境ごとに修正する必要がありますが、それ以外は変更不要かと思います。

FROM eclipse-temurin:17-jdk-alpine
ARG JAR_FILE=target/test_spring_boot-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

イメージを作成(ビルド)

Dockerfileを配置した後、以下のdocker buildコマンドを実行します。
(今回の場合は、生成したjarファイルを移動せずに作業しているため、build/libs/下にjarファイルがあることになります。)
以下のコマンドで実行した場合は、イメージ名はtest_spring_bootとなります。

docker build --build-arg JAR_FILE=build/libs/test_spring_boot-0.0.1-SNAPSHOT.jar -t test_spring_boot .
image.png image.png

作成したイメージは、以下のコマンドで確認ができます。
作成したdockerイメージ、test_spring_bootが一覧の中に表示されていれば成功です。

docker images
docker_images.png

コンテナを起動

先ほど作成したイメージを、以下コマンドを実行することで起動できます。
以下コマンドのままで実行した場合、Spring Bootアプリはコンテナの8080ポートを使用し、ローカルホストの8081ポートでアクセスが可能になります。

docker run -p 8081:8080 test_spring_boot
docker_run.png

動作確認

動作確認として、http://localhost:8081にアクセスします。
実際のアプリの中身は/controller_test_2/get_sample_jsonに作ってあるため、今回は、http://localhost:8081/controller_test_2/get_sample_jsonにアクセスを行います。
ブラウザーでURLを入力してアクセスすると以下の様になります。
test_1_image.png
今回のアプリは、リクエストボディに特定のJSONを付与しないとエラーになるような仕様になっているため、次はpostmanを使用して、リクエストを行います。
(詳細が気になる方は、以下をご確認ください。)

postmanで正しいJSONを設定して行ったリクエストのレスポンスが、以下の様になれば、動作確認成功です。
success_req_image.png

1
0
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
1
0