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
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
86
Other Decks in Programming
See All in Programming
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
R8 の設定見直しでアプリサイズ削減
andpad
0
220
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
SREの越境 / SRE Collaboration
y0hgi
2
310
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
golang-bob.pdf
iwatsukayura
0
130
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Faster Mobile Websites
deanohume
310
32k
How to build a perfect <img>
jonoalderson
1
6.1k
Amusing Abliteration
ianozsvald
1
350
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
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