0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerでSpring Bootをコンテナ化しaws ECR・ECSを利用しデプロイ part 1

Posted at

目次

  1. Spring Boot プロジェクト作成
    • Spring InitializrやIDEで基本プロジェクトを作る。
  2. アプリをローカルで動かす
    • Spring Bootがちゃんと起動するか確認。
  3. Dockerfile を作成
    • Spring Bootアプリをコンテナ化するための設定を書く。
  4. Dockerイメージをビルド&ローカルで動作確認
    • docker build と docker run で動くかテスト。
  5. 必要なら docker-compose.yml 作成
    • 複数コンテナや連携を扱いたい場合。

Spring Bootでプロジェクト作成

  • https://start.spring.io/にアクセス
  • Project:Maven
  • Language:Java
  • Spring Bootバージョンは最新安定板推奨(例:3.x系)
  • Group:com.example
  • Artifact:demo
  • Dependenciesに「Spring Webを追加」(API用)
  • 「Generate」を押してzipをダウンロード、展開する

ローカルで起動確認

./mvnw spring-boot:run

Dockerfileを作成

# 1. ベースイメージは OpenJDK 17 のJRE(軽量版)
FROM eclipse-temurin:17-jre-jammy

# 2. 作業ディレクトリを作る
WORKDIR /app

# 3. ビルド済みのjarファイルをコンテナにコピー
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar

# 4. ポート8080を開放
EXPOSE 8080

# 5. アプリを起動するコマンド
ENTRYPOINT ["java","-jar","app.jar"]

作成手順

  1. Spring Bootプロジェクトのルートで./mvnw package を実行してjarファイルを作成。
    • target/demo-0.0.1-SNAPSHOT.jarが生成される
  2. プロジェクトルートの上にDockerfileを作成
  3. Dockerイメージをビルドする
docker build -t springboot-demo .
  1. ローカルでコンテナを起動する
docker run -p 8080:8080 springboot-demo
  • ブラウザで http://localhost:8080 にアクセスして、APIや画面が動くか確認しよう!

ルートに一工夫したいい場合は:プロジェクト名\demo\src\main\java\com\example\demo\DemoApplication.javaを修正

package com.example.demo;

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 DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@RequestMapping("/")
	public String hello(){
		return "<h1>Hello Spring Boot!!!!!</h1>";
	} 

}

Hello Spring Boot!!!!!と表示

必要なら docker-compose.yml 作成

コンテナをまとめて動かしたい場合や複数のコンテナを管理する場合は利用を推奨する。

services:
  web:
    image: openjdk:17
    container_name: spring_container
    command : ./mvnw spring-boot:run
    ports:
      - "8080:8080"
    volumes:
      - ./demo:/demo
    working_dir: /demo

part2は後日掲載します

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?