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
AWS CodeBuildカスタムDockerイメージを使ってビルドする
Search
tiibun
July 21, 2017
Programming
0
3.4k
AWS CodeBuildカスタムDockerイメージを使ってビルドする
tiibun
July 21, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.3k
gunshi
kazupon
1
140
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
0
770
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
190
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
360
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
620
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
120
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1.3k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
560
CSC307 Lecture 03
javiergs
PRO
1
480
CSC307 Lecture 04
javiergs
PRO
0
650
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
How to make the Groovebox
asonas
2
1.9k
Practical Orchestrator
shlominoach
191
11k
Designing for Timeless Needs
cassininazir
0
120
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Producing Creativity
orderedlist
PRO
348
40k
Docker and Python
trallard
47
3.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Designing for humans not robots
tammielis
254
26k
Designing Powerful Visuals for Engaging Learning
tmiket
0
210
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Transcript
AWS CodeBuild カスタムDockerイメージ を使ってビルドする JAWS-UG コンテナ⽀部#9 2017-07-21 (株)オープンストリーム 飯分俊⾏(いいぶんとしゆき)
CodeBuildとは u ざっくりいうと、 CodePipelineと組み合わせて CI/CDを実現するJenkins CIのようなもの u ビルドにかかった時間に対して料⾦が発⽣
ソースを取得して u Amazon S3, CodeCommit, GitHubのソースをビルド
ビルドはDocker上で u ランタイム(何をビルドするか) u Base u Android u Java u
Python u Ruby u Golang u Node.js u Docker u .Net Core
buildspec.ymlに従ってビルド u YAMLでコマンドを定義 u ソースの直下に配置 (場所、名前は変更可能)
本⽇話す内容 u ビルド環境を⾃前で⽤意す る⽅法 u 環境イメージで “Dockerイメージの指定” を指定 u 対象のランタイムは
Docker u ⽤意されたバージョンが少 し古く、”—cache-from” オプションを使えなかった ので最新のdockerを使え るようにした
参考にした公式ドキュメント u Docker in Custom Image Sample for AWS CodeBuild
u http://docs.aws.amazon.com/codebuild/latest/userguide/sam ple-docker-custom-image.html u ⽇本語にはまだない
公式ビルド環境のDockerfile u GitHubに各ランタイムのDockerファイルがある u https://github.com/aws/aws-codebuild-docker-images/ u Dockerランタイム u https://github.com/aws/aws-codebuild-docker- images/tree/master/ubuntu/docker/1.12.1/
u Ubuntu 14.04ベース u aws-cli, git, dind(Docker in Docker)をインストール u ENTRYPOINTでDockerデーモンを起動
ビルド環境イメージ を作成 u docker:dindベース u aws-cli, gitをインストール u ENTRYPOINTはdocker:dind のまま
u dockerデーモンを起動
カスタムイメージをAmazon ECRにアップ 事前にECRにカスタムイメージ⽤のリポジトリを⽤意して
ビルドするサンプルプログラム u このDockerfileと次 に説明する buildspec.ymlのみ u ビルド中に Hello と 出⼒するだけ
buildspec.yml
buildspec.yml (1/3) u 0.1と0.2では⼤きな違いがあり、0.1にしているとはまる u 公式ドキュメントのビルドスペックリファレンスの⽇本語版はまだ 0.1なので注意
buildspec.yml (2/3) u dockerデーモンを起動して起動するまで待つ u 提供されているDockerランタイムを指定する場合は不要 u dockerデーモンが⾃動で起動するらしい u ちなみにGitHubの公式イメージを⾃分でビルドしたイメージを指定して
もこの記述が必要だった
buildspec.yml (3/3) u ビルドしてECRにアップ u REPOSITORY_URI はビルドプロジェクト作成時に指定 u ECRにアクセスするロールが必要
CodeBuild⽤ロール作成 (1/2) u サービスロールは”AWS CodeBuild”を指定
CodeBuild⽤ロール作成 (2/2) u ポリシーで”AmazonEC2ContainerRegistryPowerUser”を指定
ビルドプロジェクトを作成 (1/6)
ビルドプロジェクトを作成 (2/6) u Dockerイメージの指定 u ビルド環境イメージをプッ シュしたECRレポジトリ、 イメージを指定
ビルドプロジェクトを作成 (3/6) u ECRにプッシュするので出⼒アーティファクトはなし
ビルドプロジェクトを作成 (4/6) u ロールは先ほど作ったロールを指定
ビルドプロジェクトを作成 (5/6) u Dockerイメージを構築するので特権付与にチェック
ビルドプロジェクトを作成 (6/6) u Buildspec.ymlで使う環境変数を指定
ビルドを開始
結果 (1/2)
結果 (2/2)
まとめ u 何かの参考になれば幸いです u CodeBuildの戦いはまだ始まったばかりだ! u ⽇本語スタッフの⽅もがんばってください! u Qiita( http://qiita.com/tiibun/items/f0045011c86efca254fc
)にもあ るので参考にしてください u ご静聴ありがとうございました