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
devcontainerを使って開発環境を作ってみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuki Hara
February 29, 2024
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
devcontainerを使って開発環境を作ってみた
Kazuki Hara
February 29, 2024
More Decks by Kazuki Hara
See All by Kazuki Hara
私がWebエンジニアに転向して1年で学んだこと
kazukihara
0
84
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
280
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
SREの越境 / SRE Collaboration
y0hgi
0
190
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
Are APIs Still Relevant in the AI Era?
soyuka
0
230
自分的「カンファレンスの楽しみ方」
syumai
0
200
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
120
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
速習iPhone Duo対応
yuukiw00w
1
500
Building an Out-of-Order CPU
latte72
1
780
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
320
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Believing is Seeing
oripsolob
1
220
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Transcript
devcontainer を使って開発環境を作ってみた インフラエンジニア 原 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara
1
自己紹介 原 一貴(ハラ カズキ) 2022/10 入社のインフラエンジニア はまっていること ぼっちざろっく 一次創作同人誌 devcontainer
を使って開発環境を作ってみた © 2024 Kazuki Hara 2
早速ですが… 開発環境の構築で苦労してませんか? devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 3
開発環境構築で苦労すること ローカル環境に開発ツールをインストールする方法では、依存関係などにより開発環 境をサクッと作れない。 多数の開発ツールを入れるとローカル環境が汚れる。 開発ツールの依存関係により再インストールが大変である。 ローカル環境に開発環境を構築するには、多くの場合手動で手順を実施する必要 がある。 開発環境の共有は構築手順書に基づいたもので再現性が低い。 devcontainer を使って開発環境を作ってみた
© 2024 Kazuki Hara 4
じゃあどんな技術を使えば開発環境を簡単に作れる? 開発環境の構築にdevcontainer はとても便利である。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 5
devcontainer を使うと… ローカル環境に入れるのはDocker (on WSL or Docker Desktop )と、Remote Container
プラグインを入れたVisual Studio Code だけで良い。 開発環境はDocker コンテナ上に構築されるため、ローカル環境が汚れない。 Docker コンテナなので開発環境の作り直しが簡単。 事前ビルドされた開発環境コンテナイメージや、コンテナに機能を追加する feature が多数公開されており、少ない工数で開発環境コンテナを作ることができ る。 Docker コンテナの構成情報をコードで記述するため、開発環境の共有が簡単。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 6
devcontainer とは Docker コンテナを使って開発環境を構築する仕組み。 リポジトリのディレクトリ直下の .devcontainer/devcontainer.json に開発環境 の構成情報を記述する。 公開されているImage とFeature
を使って開発環境を構築する。 ただし、RHEL 系のコンテナイメージには非対応。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 7
devcontainer のアーキテクチャ 画像出典:https://code.visualstudio.com/docs/devcontainers/containers devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 8
構成ファイルの例 { "name": "react-calendar", "image": "mcr.microsoft.com/devcontainers/javascript-node:20-bullseye", "features": { "ghcr.io/devcontainers/features/aws-cli:1": {}
} } image 事前ビルドのjavascript-node イメージを使う。 feature 開発環境構築時にaws-cli を自動でインストールする。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 9
.devcontainer のキーワード ディレクティブ 値 image ベースイメージに使うコンテナイメージ features コンテナイメージの拡張に使うフィーチャー devcontainer を使って開発環境を作ってみた
© 2024 Kazuki Hara 10
Feature ( フィーチャー) 開発コンテナをビルドするときに、自動でインストールするツールのこと。 フィーチャー自体はtarball でアーカイブであり、中に含まれるinstall.sh を実行す ることで追加のツールをインストールできる。 .devcontainer ディレクトリの中にそのリポジトリだけで使うことができる
Feature を用意することも可能。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 11
まとめ 再掲 ローカル環境に入れるのはDocker (on WSL or Docker Desktop )と、Remote Container
プラグインを入れたVisual Studio Code だけで良い。 開発環境はDocker コンテナ上に構築されるため、ローカル環境が汚れない。 Docker コンテナなので開発環境の作り直しが簡単。 事前ビルドされた開発環境コンテナイメージや、コンテナに機能を追加する feature が多数公開されており、少ない工数で開発環境コンテナを作ることができ る。 Docker コンテナの構成情報をコードで記述するため、開発環境の共有が簡単。 devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 12
ありがとうございました devcontainer を使って開発環境を作ってみた © 2024 Kazuki Hara 13