Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SpringBootをコンテナで動かしてみる
Search
Kazuhiro Seo
February 09, 2020
Programming
0
390
SpringBootをコンテナで動かしてみる
Kazuhiro Seo
February 09, 2020
Tweet
Share
More Decks by Kazuhiro Seo
See All by Kazuhiro Seo
JavaとWebAssembly
kazuhiro1982
0
62
SpringBoot 3.0 のNative Imageを試してみた
kazuhiro1982
0
320
セッションデータの管理にSpring Sessionを利用する
kazuhiro1982
0
2.3k
AWSのLake Formation Governed Tablesを触ってみた
kazuhiro1982
0
360
VS CodeとRemote Containerで開発環境もコード管理しよう
kazuhiro1982
1
600
Serverless FrameworkでWebサイトの更新を検知して通知する
kazuhiro1982
0
470
Other Decks in Programming
See All in Programming
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
Security_for_introducing_eBPF
kentatada
0
110
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
42 best practices for Symfony, a decade later
tucksaun
1
180
Recoilを剥がしている話
kirik
5
6.6k
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
370
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
testcontainers のススメ
sgash708
1
120
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
97
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Adopting Sorbet at Scale
ufuk
73
9.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Transcript
SpringBoot を SpringBoot を コンテナで コンテナで 動かしてみる 動かしてみる SpringBoot を
- コンテナで - 動かしてみる
⾃⼰紹介 ⾃⼰紹介 妹尾 ⼀弘 札幌でシステム開発会社勤務 興味分野 AWS/ サーバーレス/Java SpringBoot を
- コンテナで - 動かしてみる
コンテナ コンテナ 使ってますか? 使ってますか? SpringBoot を - コンテナで - 動かしてみる
私は使ってません 私は使ってません SpringBoot を - コンテナで - 動かしてみる
最近のプロジェクトで 最近のプロジェクトで SpringBoot アプリを SpringBoot アプリを Docker で動かした話 Docker で動かした話
SpringBoot を - コンテナで - 動かしてみる
アジェンダ アジェンダ 1. なぜDocker を使うことになったか 2. SpringBoot をDocker 化する 3.
Docker Image を動かす SpringBoot を - コンテナで - 動かしてみる
#1 なぜDocker を使うことに #1 なぜDocker を使うことに なったか なったか SpringBoot を
- コンテナで - 動かしてみる
インフラはAWS Beanstalk インフラはAWS Beanstalk SpringBoot を - コンテナで - 動かしてみる
Java 11 を採⽤ Java 11 を採⽤ SpringBoot を - コンテナで
- 動かしてみる
Beanstalk がJava11 を未サポート Beanstalk がJava11 を未サポート (2020 年2 ⽉現在はベータ版で提供中) SpringBoot
を - コンテナで - 動かしてみる
Docker ならJava11 が動かせる! Docker ならJava11 が動かせる! SpringBoot を - コンテナで
- 動かしてみる
#2 SpringBoot をDocker 化する #2 SpringBoot をDocker 化する SpringBoot を
- コンテナで - 動かしてみる
イメージ作成〜デプロイの流れ イメージ作成〜デプロイの流れ SpringBoot を - コンテナで - 動かしてみる
Dockerfile Dockerfile SpringBoot を - コンテナで - 動かしてみる
From From SpringBoot を - コンテナで - 動かしてみる
Run Run SpringBoot を - コンテナで - 動かしてみる
Volume Volume SpringBoot を - コンテナで - 動かしてみる
Env Env SpringBoot を - コンテナで - 動かしてみる
Copy Copy SpringBoot を - コンテナで - 動かしてみる
Expose Expose SpringBoot を - コンテナで - 動かしてみる
Entrypoint Entrypoint SpringBoot を - コンテナで - 動かしてみる
Build Image Build Image $ docker build -t javado .
Step 1/12 : FROM amazoncorretto:11 ---> 2f2a640d4c1d Step 2/12 : RUN yum install -y glibc-langpack-ja ---> Using cache ---> a4ef6d211b52 Step 3/12 : RUN mkdir /app ---> Using cache ---> af5ba884f647 ... Step 10/12 : COPY build/libs/SampleApplication.jar /app/SampleApp ---> b615e2d76851 ... Successfully built a2e16070534a SpringBoot を - コンテナで - 動かしてみる
Build Image Build Image SpringBoot を - コンテナで - 動かしてみる
#3 Docker を動かす #3 Docker を動かす SpringBoot を - コンテナで
- 動かしてみる
AWS Elastic Beanstalk AWS Elastic Beanstalk AWS のPaaS サービス Platform
の1 つとしてDocker をサポート SpringBoot を - コンテナで - 動かしてみる
デプロイ⽅法は3 パターン デプロイ⽅法は3 パターン Docker Docker le のデプロイ コンテナレジストリから取得 MultiContainer
Docker SpringBoot を - コンテナで - 動かしてみる
Docker Platform の構成 Docker Platform の構成 SpringBoot を - コンテナで
- 動かしてみる
Dockerfile をデプロイして Dockerfile をデプロイして デプロイ先でdocker build デプロイ先でdocker build 実⾏定義ファイル Dockerrun.aws.json
を定義 Docker le と定義ファイルをzip にしてデプロイ ホストインスタンスでdocker build & docker run SpringBoot を - コンテナで - 動かしてみる
Dockerrun.aws.json Dockerrun.aws.json { "AWSEBDockerrunVersion": 1, "Ports": [ { "ContainerPort": 8000
} ], "Volumes": [ { "HostDirectory": "/var/log/app", "ContainerDirectory": "/app/logs" } ] } SpringBoot を - コンテナで - 動かしてみる
SampleApplication.zip SampleApplication.zip SampleApplication.zip / |- Dockerfile |- Dockerrun.aws.json |- build/
|- libs/ |- SampleApplication.jar SpringBoot を - コンテナで - 動かしてみる
コンテナレジストリから コンテナレジストリから 取得して実⾏ 取得して実⾏ ビルドしたイメージをレジストリにPush 実⾏定義ファイル Dockerrun.aws.json を定義 コンテナレジストリからイメージをPull SpringBoot
を - コンテナで - 動かしてみる
Container Registry Container Registry ビルドしたContainer Image を保存する場所 パブリックレジストリ Docker Hub
プライベートレジストリ private Docker Hab Elastic Container Registry (AWS) Azure Container Registry (Azure) SpringBoot を - コンテナで - 動かしてみる
ECR にリポジトリを作成 ECR にリポジトリを作成 SpringBoot を - コンテナで - 動かしてみる
ビルド済みのローカルの ビルド済みのローカルの コンテナにタグを付ける コンテナにタグを付ける $ docker tag javado:latest \ xxx.dkr.ecr.ap-northeast-1.amazonaws.com/javado:2020020901
SpringBoot を - コンテナで - 動かしてみる
ECR にPush ECR にPush $ docker push xxx.dkr.ecr.ap-northeast-1.amazonaws.com/javado:202 SpringBoot を
- コンテナで - 動かしてみる
Dockerrun.aws.json Dockerrun.aws.json { "AWSEBDockerrunVersion": 1, "Image": { "Name": "xxx.dkr.ecr.ap-northeast-1.amazonaws.com/javado:2020 },
"Ports": [ { "ContainerPort": 8000 } ], "Volumes": [ { "HostDirectory": "/var/log/app", "ContainerDirectory": "/app/logs" } ] } SpringBoot を - コンテナで - 動かしてみる
SampleApplication.zip SampleApplication.zip SampleApplication.zip / |- Dockerrun.aws.json SpringBoot を - コンテナで
- 動かしてみる
Multicontainer Docker の構成 Multicontainer Docker の構成 SpringBoot を - コンテナで
- 動かしてみる
Multicontainer Docker Multicontainer Docker 複数のコンテナを実⾏可能 docker-compose 相当の構成が出来る 実際にはECS が起動する SpringBoot
を - コンテナで - 動かしてみる
Dockerrun.aws.json Dockerrun.aws.json { "AWSEBDockerrunVersion": 2, "containerDefinitions": [ { "name": "springboot",
"image": "xxx.dkr.ecr.ap-northeast-1.amazonaws.com/javado:2 "essential": true, "memory": 1024, "portMappings": [ { "hostPort": 8000, "containerPort": 8000 } ], "logConfiguration": { "logDriver": "awslogs" SpringBoot を - コンテナで - 動かしてみる
デプロイ⽅法の違い デプロイ⽅法の違い SpringBoot 単独で動かすならDocker がシンプル Docker le 直接ならRegistry が不要 Registry
を使⽤する⽅法が汎⽤的 複数コンテナを動かしたいならMultiContainer SpringBoot を - コンテナで - 動かしてみる
コンテナ化しておけば コンテナ化しておけば 運⽤⽅法に関わらず 運⽤⽅法に関わらず 同じアプリが動作するので、 同じアプリが動作するので、 運⽤しやすい選択肢が選べる 運⽤しやすい選択肢が選べる SpringBoot を
- コンテナで - 動かしてみる
アプリの実⾏環境をコンテナに押し込むことで アプリの実⾏環境をコンテナに押し込むことで 実⾏環境と運⽤環境を切り離すことができる 実⾏環境と運⽤環境を切り離すことができる SpringBoot を - コンテナで - 動かしてみる
コンテナ コンテナ 使っていきましょう 使っていきましょう SpringBoot を - コンテナで - 動かしてみる
ありがとうございました ありがとうございました SpringBoot を - コンテナで - 動かしてみる