Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
カスタムDockerイメージの作成
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masahiko Funaki(舟木 将彦)
October 29, 2020
Technology
27
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
290
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
840
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
210
202605-進化し続けるUIに追従.pdf
mfunaki
0
66
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
mfunaki
0
88
知って得するmabl活用Tips〜「こんな時どうする?」実践機能ガイド
mfunaki
0
110
20260422-mablで変わるテスト自動化_品質_速さ_コストの三角形を崩す5つのアプローチ.pdf
mfunaki
0
140
手順(プロンプト)だけで テストを自動作成~テスト作成エージェントを使いこなすための 実践プロンプト術
mfunaki
0
230
「見た目」と「意味」をAIが判定 ~ビジュアルアサーションで変わる テストの守備範囲~
mfunaki
0
110
Other Decks in Technology
See All in Technology
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
340
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
go-sqletch
moznion
0
140
パッチ更新でterraform initが落ちた日
grimoh
1
140
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3.1k
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
200
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
Browser Spec: Testing Hotwire with Ruby
takahashim
1
120
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Practical Orchestrator
shlominoach
192
12k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Marketing to machines
jonoalderson
1
5.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Designing for humans not robots
tammielis
254
26k
Everyday Curiosity
cassininazir
0
350
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
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/