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
カスタムDockerイメージの作成
Search
Masahiko Funaki(舟木 将彦)
October 29, 2020
Technology
24
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
カスタムDockerイメージの作成
Masahiko Funaki(舟木 将彦)
October 29, 2020
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
580
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
170
202605-進化し続けるUIに追従.pdf
mfunaki
0
58
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
mfunaki
0
80
知って得するmabl活用Tips〜「こんな時どうする?」実践機能ガイド
mfunaki
0
87
20260422-mablで変わるテスト自動化_品質_速さ_コストの三角形を崩す5つのアプローチ.pdf
mfunaki
0
140
手順(プロンプト)だけで テストを自動作成~テスト作成エージェントを使いこなすための 実践プロンプト術
mfunaki
0
210
「見た目」と「意味」をAIが判定 ~ビジュアルアサーションで変わる テストの守備範囲~
mfunaki
0
100
Other Decks in Technology
See All in Technology
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
140
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
170
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
120
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
130
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
140
少人数データチームのDevin活用実践事例
runandy16
2
420
Azure App Service / Container Apps の組み込み認証
kuniteru
0
170
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
230
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
3
3.2k
いま好きなこと 最初はそんなに好きじゃなかった #tamagawadev
nishiuma
1
240
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
240
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
150
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
860
Navigating Weather and Climate Data
rabernat
0
510
The SEO Collaboration Effect
kristinabergwall1
1
550
GraphQLとの向き合い方2022年版
quramy
50
15k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
WENDY [Excerpt]
tessaabrams
12
39k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Statistics for Hackers
jakevdp
799
230k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Code Review Best Practice
trishagee
74
20k
Transcript
1 カスタム Dockerイメージの作成 CircleCIを学ぼうシリーズ 第1弾 舟木 将彦(Masahiko Funaki) Developer Advocate まもなく開始いたします。そのままお待ちください。
プレゼンター 舟木 将彦 @mfunaki , @CircleCIJapan CircleCI Developer Advocate 開発者をインスパイヤする
お仕事(推し事)です 2 mfunaki /in/mfunaki
3 アジェンダ Dockerコンテナで何が嬉しいのか コンテナの基本 1 2 開発用コンテナの構築 チーム内で開発環境を共通化 3 開発用コンテナ上での開発
アプリ開発、およびテスト 4 CircleCIによる自動化 テスト~デプロイ用コンテナ作成 5 Q&A 時間がない場合はブログにて回答
4 この Webinar を受講すると Dockerコンテナ上で開発をするための環境構築・作業の進め方・ビルド~デプロイについて理解できる。 1. (Node.js + express)環境構築のCircleCIによる自動化 2.
Dockerコンテナ上で開発・テストを進める方法 3. アプリ・サービスのDockerイメージ構築のCircleCIによる自動化 リポジトリ 本日使用しているリポジトリは、 - https://github.com/mfunaki/CCI-Img-Node - https://github.com/mfunaki/CCI-App-Node - https://github.com/mfunaki/CCI-App-Node_Work (作業用)の3つです おことわり 個々の操作を行う上で前提としているライブラリやコマンド、プラグインなののインストールや設定について触れておりません(gitコマ ンドのインストールなど)。別途、ブログにて環境構築も含めた説明を公開する予定です。http://circleci.com/ja/blog/
5 Dockerコンテナで 何が嬉しいのか
6 コンテナとは何か? 一つ一つの荷物を運ばなくても、 箱単位で運ぶことができる (一人じゃなくてチームで ) 箱の大きさが揃っている (船や列車、トンネルの大きさも コンテナの大きさが基準になる )
輸送効率がアップする
7 コンテナを使った開発とは何か? 一つ一つの成果物を合わせこまなくても 、 最初からチームで同じ場所で作業できる (一人じゃなくてチームで ) コンテナ内の環境が揃っている (同じコンテナを使っていれば、どの PC/
Mac/Linuxで動作していても同じことが できる) 開発・ビルド・テスト・デプロイ効率 がアップす る
8 開発用コンテナの構築
9 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile作成 4. コンテナ構築用config.yml作成
5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
10 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile作成 4. コンテナ構築用config.yml作成
5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
11 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile作成 4. コンテナ構築用config.yml作成
5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
12 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile作成 4. コンテナ構築用config.yml作成
5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
13 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile作成 4. コンテナ構築用config.yml作成
5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
14 コンテナ作成の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone 3. Dockerfile(定義ファイル)の作成 (express, jest,
supertest組込)+ npm initでpackage.jsonの作成+ .dockerignoreの作成 4. コンテナ構築用config.yml作成 5. GitHub上のリポジトリ更新 6. CircleCIプロジェクト登録 (環境変数登録) →コンテナ作成 →Docker Hubへプッシュ
15 開発用コンテナ上での Webアプリ開発
16 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新
17 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新
18 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新 8.
19 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新 8.
20 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新
21 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から) 7. GitHub上のリポジトリをコンテナ内から 更新
22 開発の流れ 1. GitHub上でリポジトリ作成 2. ローカルPC上にclone →VSCodeで開く 3. 先ほどのイメージを使用する Dockerfile作成
4. VSCodeを使い、フォルダを コンテナで開きなおす 5. Node.js(Express)のコード作成 6. 動作確認(コンテナ内から+コンテナ外 から) 7. GitHub上のリポジトリをコンテナ内から 更新
23 テストの流れ 1. テスト用コード作成 2. テスト実行 3. GitHub上のリポジトリを コンテナ内から更新
24 テストの流れ 1. テスト用コード作成 2. テスト実行 3. GitHub上のリポジトリを コンテナ内から更新
25 テストの流れ 1. テスト用コード作成 2. テスト実行 3. GitHub上のリポジトリを コンテナ内から更新
26 CircleCIによる自動化
27 CircleCIによるCI/CD 1. VSCode上でコンテナから抜ける (ローカルのアプリディレクトリを 開く) 2. Dockerfile修正 3. コンテナ構築用config.yml作成
→コンテナ作成 →Docker Hubへプッシュ 4. GitHub上のリポジトリ更新 5. CircleCIプロジェクト登録 (環境変数登録) →CircleCI起動
28 CircleCIによるCI/CD 1. VSCode上でコンテナから抜ける (ローカルのアプリディレクトリを 開く) 2. Dockerfile修正 3. コンテナ構築用config.yml作成
→コンテナ作成 →Docker Hubへプッシュ 4. GitHub上のリポジトリ更新 5. CircleCIプロジェクト登録 (環境変数登録) →CircleCI起動
29 CircleCIによるCI/CD 1. VSCode上でコンテナから抜ける (ローカルのアプリディレクトリを 開く) 2. Dockerfile修正 3. コンテナ構築用config.yml作成
→コンテナ作成 →Docker Hubへプッシュ 4. GitHub上のリポジトリ更新 5. CircleCIプロジェクト登録 (環境変数登録) →CircleCI起動
30 CircleCIによるCI/CD 1. VSCode上でコンテナから抜ける (ローカルのアプリディレクトリを 開く) 2. Dockerfile修正 3. コンテナ構築用config.yml作成
→コンテナ作成 →Docker Hubへプッシュ 4. GitHub上のリポジトリ更新 5. CircleCIプロジェクト登録 (環境変数登録) →CircleCI起動
31 まとめ
32 この Webinar を受講し終わって Dockerコンテナ上で開発をするための 環境構築・作業の進め方・ビルド~デプロイについてご理解いただけたでしょうか? 1. (Node.js + express)環境構築のCircleCIによる自動化
2. Dockerコンテナ上で開発・テストを進める方法 3. アプリ・サービスのDockerイメージ構築の CircleCIによる自動化 ぜひご自身の環境での適用例や、修正箇所、ご質問等、 ハッシュタグ #CircleCIJp をつけてツイートください! (@CircleCIJapan のフォローお願いします)
33 Q&A
34
35
36 今後のイベント情報通知を→ から登録して自動化しよう! https://circleci.connpass.com/