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
400
SpringBootをコンテナで動かしてみる
Kazuhiro Seo
February 09, 2020
Tweet
Share
More Decks by Kazuhiro Seo
See All by Kazuhiro Seo
GitHub ActionsとAWSをOIDC認証で連携する
kazuhiro1982
1
120
Gradleとちょっと仲良くなろう
kazuhiro1982
0
79
JavaとWebAssembly
kazuhiro1982
0
99
SpringBoot 3.0 のNative Imageを試してみた
kazuhiro1982
0
410
セッションデータの管理にSpring Sessionを利用する
kazuhiro1982
0
2.8k
AWSのLake Formation Governed Tablesを触ってみた
kazuhiro1982
0
390
VS CodeとRemote Containerで開発環境もコード管理しよう
kazuhiro1982
1
660
Serverless FrameworkでWebサイトの更新を検知して通知する
kazuhiro1982
0
500
Other Decks in Programming
See All in Programming
令和最新版手のひらコンピュータ
koba789
13
7.5k
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.1k
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
460
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
360
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
710
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
JetBrainsのAI機能の紹介 #jjug
yusuke
0
200
decksh - a little language for decks
ajstarks
4
21k
Understanding Ruby Grammar Through Conflicts
yui_knk
1
100
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
330
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.1k
kiroでゲームを作ってみた
iriikeita
0
150
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Code Reviewing Like a Champion
maltzj
524
40k
A Modern Web Designer's Workflow
chriscoyier
695
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Statistics for Hackers
jakevdp
799
220k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.3k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Done Done
chrislema
185
16k
Side Projects
sachag
455
43k
Measuring & Analyzing Core Web Vitals
bluesmoon
8
550
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 を - コンテナで - 動かしてみる