Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Docker x wercker
ハトネコエ
July 13, 2017
Technology
0
33
Docker x wercker
他社さんの社内勉強会に誘われたのでそこにて発表。
CircleCIを知らない方が多く、そこの説明からになったのでちょっとあせりました。
ハトネコエ
July 13, 2017
Tweet
Share
More Decks by ハトネコエ
See All by ハトネコエ
伝わる文章を書こう講座 / Write the Kind Japanese Message
nekonenene
1
46
Unity で Android 自動ビルドしたかった話 / I tried Android build of Unity using Docker, but...
nekonenene
0
1.5k
これでわかるB-treeアルゴリズム / B-tree algorithm
nekonenene
8
6.4k
なぜ社内勉強会をするのか
nekonenene
0
110
ロードバランサーって何? / What is the load balancer?
nekonenene
0
76
はじめてのVPS契約 / My first VPS
nekonenene
1
140
Kotlinかわいい @ アイマスエンジニア MeetUp in Tokyo
nekonenene
0
190
ハノイの塔問題の解法をできるだけわかりやすく解説
nekonenene
0
2.3k
モダンWeb ミニミニLT(お知らせしたい小ネタ3つ)
nekonenene
0
1.3k
Other Decks in Technology
See All in Technology
Simplify Cloud Native Security with Trivy
knqyf263
0
450
IBM Cloud Festa Online 2022 Summer
1ftseabass
PRO
0
190
JAWS-UG 朝会 #36 登壇資料
takakuni
1
500
ソフトウェアアーキテクチャの基礎: Software Architecture in a Nutshell
snoozer05
26
7.9k
DBRE 活動と information_schema
_awache
0
250
ソフトバンクのシナジーがもたらすクラウドソリューションについて、クラウドエンジニアが話してみた。
sbtechnight
0
290
psql, my favorite tool!
nuko_yokohama
1
170
私のAWS愛を聞け!ここが好きだよAmazon FSx for NetApp ONTAP
non97
0
690
hey BOOK
heyinc
26
290k
初めてのLambdaによる運用自動化 ~ 不要リソース削除大作戦 ~
kentosuzuki
1
340
データ分析のためのAWS Well-Architected -Data Analytics Lens-
maru1981
0
220
年90回以上のアップデートを実現する、Backlogを使ったスクラム開発
yoshiteruiwasaki
0
370
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.4k
GraphQLとの向き合い方2022年版
quramy
16
8.4k
Six Lessons from altMBA
skipperchong
14
1.4k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Designing for Performance
lara
597
63k
The Illustrated Children's Guide to Kubernetes
chrisshort
18
40k
Building an army of robots
kneath
299
40k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.6k
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Producing Creativity
orderedlist
PRO
334
37k
Designing Experiences People Love
moore
130
22k
Transcript
ϋτωίΤ werckerから Dockerを使ってみよう @nekonenene
ࣗݾհ ハトネコエ • Twitter : @nekonenene • Github : nekonenene
• Facebook : 本名 • Job : UUUM • ミクさんかわいい!!!!!!
UUUMʁ YouTubeに投稿している 動画クリエイターをサポートしています
̍ なぜDockerを使うのか?
ͳͥDockerʁ • 環境の使い捨てが出来る (VirtualBoxなどと同じ利点) • VirtualBox(ホスト型)よりも速い • CircleCI 2.0 や
wercker による 標準サポート
Dockerҙ֎ͱ؆୯ • 最小限で言うなら Dockerfile に FROM の行を書くだけでおしまい • docker build
と docker run の コマンドだけ覚えとけば だいたいなんとかなる
VirtualBoxΑΓ͍ʁ • 仮想化の方式には「ホスト型」「ハイ パーバイザー型」が今まであったが Dockerは「コンテナ型」にあたる。 • ユーザー空間のアプリケーションから OSの機能を呼び出すホスト型と異なり 「コンテナ型」はOSカーネルをそのま ま用いる
https://thinkit.co.jp/story/2014/12/02/5456 ΑΓ
̎ werckerで使ってみよう
werckerͱ • CircleCI みたいなものです。 GitHub や Bitbucket に push すると自動で指定タスクを
おこなってくれます • テストやデプロイなど時間のかかる ことを代わりにやらせます
CIͱDocker૬ੑྑ͍ CI環境でテストコードを走らせるとき、 本番環境とPHPバージョンが違うとか MySQLバージョンが違うとかでは、 CIのテストが通るのに本番環境ではバグ が……ということになりかねません。 環境を揃えるためにDockerは便利です
ٯʹݴ͏ͱ… • CircleCI 1.0 では選べる環境の 選択肢が少なかったため、本番環境と 異なる環境になる場合もあった • もちろん、本番と同環境になるよう PHPなどのバージョンをインストール
する手段もあるがビルド時間が増す
CircleCI 2.0, wercker • CircleCI 2.0 では Dockerを標準サポートするように • しかし、それより以前から
標準サポートしていたwerckerと 比べると、癖のある記法……
͋ͱσϞʂ • ↓話したいこと一覧 • Dockerfileの作り方(with Alpine Linux) • DockerHubの説明 •
werckerでのAndroidビルドの話 • werckerでは秘密の環境変数を登録できる話
̏ Dockerを実際に使ってみよう (デモの内容のいくらかを復習用に書きました)
DockerΛΠϯετʔϧ • 以下のURLからDocker for Macを インストールします https://store.docker.com/editions/community/ docker-ce-desktop-mac • Docker
Toolboxは現在公式としても 非推奨ですので避けましょう https://docs.docker.com/toolbox/overview/
Dockerfileͷ࡞Γํ • てきとーにフォルダを作ります • そこにDockerfileという名前の ファイルを用意します • 今回は alpine を入れてみましょう
• Dockerfileの先頭に FROM alpine:latest と一行書きます
docker build • Dockerfileのあるディレクトリで docker build -t alpine-test . とコマンドを入力すると、ビルドが始
まります(最後のドットを忘れずに) • 最後のドットはDockerfileがあるディ レクトリを指定するもので、必要です
docker run • docker build で作成したDockerイ メージの中に入ってみましょう。 docker run -it
alpine-test とコマンドを入力します • ここの中でコマンドを実行しつつ、 Dockerfileを書き足してくといいです
Dockerfileྫ • 今回のデモで作ったDockerfileは 以下のようになりました。 FROM alpine:latest RUN apk update
&& apk add \ git
ิ • 今回は素早くデモをおこなうため Alpine Linux というDocker向けの とても軽量なLinuxディストリビュー ションを使いましたが、 もちろんDockerHubには Ubuntu
や CentOS のイメージがあります。
Dockerfileৄࡉ • Dockerfileの書き方については 公式サイトに日本語で説明が されていますので、そのページを 読んだり、よりわかりやすく解説した 記事を探すといいと思います。 http://docs.docker.jp/engine/reference/ builder.html