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
Dev Containers のススメ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
onozaty
January 20, 2026
Technology
39
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dev Containers のススメ
onozaty
January 20, 2026
More Decks by onozaty
See All by onozaty
リモートワーク中に買って良かったものベスト3
onozaty
0
200
情報を表現するときのポイント
onozaty
0
35
チームで開発するための環境を整える
onozaty
1
350
Selenium入門(2023年版)
onozaty
1
230
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
0
82
Java8から17へ
onozaty
0
30
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
0
280
Redmine issue assign notice plugin の紹介
onozaty
0
280
最近作ったもの
onozaty
0
40
Other Decks in Technology
See All in Technology
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
280
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
1.9k
Claude Code 珍プレー好プレー
shinyasaita
0
300
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
110
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
1
230
Baseline対応のDOMの型定義を作った
uhyo
3
720
初めてのDatabricks勉強会
taka_aki
2
250
貴方はどのエンジニアリングを磨くのか
hatyibei
0
100
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
340
はじめてのWDM
miyukichi_ospf
1
130
AI Driven AI Governance
pict3
0
300
SRE Lounge Hiroshimaへの招待
grimoh
0
500
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
Music & Morning Musume
bryan
47
7.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Chasing Engaging Ingredients in Design
codingconduct
0
230
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Docker and Python
trallard
47
3.9k
How STYLIGHT went responsive
nonsquared
100
6.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Designing for humans not robots
tammielis
254
26k
Transcript
Dev Containers のススメ 2026-01-20 / 第129回社内勉強会 onozaty 1
Dev Containers とは? Visual Studio Code (以下 VS Code) の機能で、コンテナ内で開発できる仕組み
参考: 公式ドキュメント オープンな仕様のため、IntelliJ IDEA などでも対応が進んでいる 開発環境を Docker コンテナ として定義・共有できる .devcontainer/devcontainer.json に環境設定を記述 プロジェクト/ ├── .devcontainer/ │ └── devcontainer.json ← 環境定義 (必須) └── (ソースコード) ※ 必要に応じて Dockerfile や docker-compose.yml も配置 2
なぜ Dev Containers を勧めるのか? よくある開発環境の課題 担当者の環境によって動作が異なる 新メンバーのセットアップに半日かかる 複数バージョンのツールを共存させるのが大変 Windows/Mac で挙動が違う
→ Dev Containers で解決(or 改善)できる 3
Dev Containers のメリット 4
メリット 1: 開発環境をコードで管理・共有できる 環境定義をチーム全体で共有 .devcontainer.json や Dockerfile 、 docker-compose.yml で環境を定義
Git で管理 → チーム全体で共有・バージョン管理 環境変更時も再ビルドで全員に反映 セットアップ手順のドキュメント不要 (設定ファイル自体が手順) 個人のスキルや知識に依存しない 新人でもベテランでも、同じ環境を数分で構築できる 5
メリット 2: メンバーのPC環境を気にしなくて良い チームメンバーのPCがバラバラでも大丈夫 Windows、Mac、Linux が混在していても問題なし 全員が同じ Linux コンテナ で開発
ホストOSに依存しない OS による違いを意識しない開発 OS 固有のトラブルがなくなる シェルスクリプトも全員同じ動作 担当者間の環境差異による問題が起こりづらくなる 6
メリット 3: プロジェクトごとに環境を分離できる 複数プロジェクトの並行作業に便利 プロジェクトごとに異なるバージョンを使い分け可能 例: Node.js 20/22/24、Java 11/17/21、PostgreSQL 16/17
等 プロジェクト切り替えは VS Code を開き直すだけ バージョン管理ツール (nvm, SDKMAN 等) が不要 ホスト環境との分離 ホスト環境はクリーンな状態を保てる VS Code拡張機能もプロジェクトごとに独立 複数プロジェクトの同時進行も問題なし 7
メリット 4: 必要なツールを自動セットアップ (1/2) Dockerfile: パッケージのインストール RUN apt-get update &&
apt-get install -y \ nodejs python3 jq curl make gcc devcontainer.json: Features で便利機能を追加 再利用可能な機能パッケージ (公式・コミュニティ提供) 例: Docker-in-Docker、AWS CLI など 利用可能な Features の一覧は Dev Container Features を参照 "features": { "ghcr.io/devcontainers/features/aws-cli:1": {}, "ghcr.io/devcontainers/features/docker-in-docker:2": {} } 8
メリット 4: 必要なツールを自動セットアップ (2/2) devcontainer.json: VS Code 拡張機能を自動インストール "customizations": {
"vscode": { "extensions": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] } } docker-compose.yml: 複数サービスの定義も可能 例: アプリ + PostgreSQL + Redis など 9
メリット 5: 環境トラブル時の復旧が簡単 コンテナを作り直すだけ 1. 環境が壊れた 2. コンテナを削除 3. 再ビルド
→ 完了! ホスト環境に影響なし 数分で元通り 10
セットアップ方法 11
セットアップ方法 必要なもの 1. VS Code 2. Docker (Docker Desktop、Rancher Desktop、Docker
Engine など) 3. Dev Containers 拡張機能 12
セットアップ手順 1: Docker のインストール 代表的な方法 Docker Desktop (Windows/Mac) Rancher Desktop
(Windows/Mac/Linux) WSL2 + Docker Engine (Windows) Docker Engine (Linux) ※ Docker Desktop は大規模組織での商用利用時にライセンスが必要な場合あり 13
セットアップ手順 2: VS Code 拡張機能のインストール 1. VS Code を開く VS
Code が未インストールの場合は 公式サイト からインストール 2. 拡張機能タブ (Ctrl+Shift+X) を開く 3. "Dev Containers" で検索 4. Microsoft 製の拡張機能をインストール 14
セットアップ手順 3: Dev Container の設定ファイルの作成 方法 1: テンプレートから作成 1. コマンドパレット
(Ctrl+Shift+P) を開く 2. "Dev Containers: Add Dev Container Configuration Files..." を選択 3. 言語・フレームワークを選択 → 自動生成される 方法 2: 手動で作成 .devcontainer/devcontainer.json を作成 { "name": "My Dev Environment", "image": "mcr.microsoft.com/devcontainers/python:3.11" } 15
セットアップ手順 4: コンテナで開く 1. VS Code でプロジェクトフォルダを開く 2. 以下のいずれかの方法で "Reopen
in Container" を選択 右下に表示されるポップアップから選択 左下のリモート接続アイコンをクリック コマンドパレット (Ctrl+Shift+P) から選択 → コンテナがビルドされ、コンテナ内で VS Code が開く 16
Windows (WSL) 利用時の注意点 プロジェクトファイルは WSL 上に配置する Windows のファイルシステム ( C:\
など) にファイルを置くとパフォーマンスが大幅 に低下 WSL のファイルシステム ( /home/ユーザー名/ など) に配置することを推奨 WSL のターミナルからプロジェクトを開く 1. WSL のターミナルを起動 2. プロジェクトディレクトリに移動 3. code . で VS Code を起動 17
デモ1 実際にDev Containerをセットアップしてみます。 18
設定ファイルの役割分担 (1/2) devcontainer.json ( .devcontainer/devcontainer.json ) コンテナイメージの指定 ( image ,
build ) Features の追加 ( features ) VS Code 拡張機能の指定 ( customizations.vscode.extensions ) VS Code 設定 ( customizations.vscode.settings ) .vscode/settings.json でも設定可能 ライフサイクルコマンド ( postCreateCommand , postStartCommand など) Dockerfile ( .devcontainer/Dockerfile ) システムパッケージのインストール 言語ランタイムのセットアップ 19
設定ファイルの役割分担 (2/2) docker-compose.yml ( .devcontainer/docker-compose.yml ) 複数サービスの定義 (アプリ + DB
など) ボリュームマウントの設定 ネットワーク設定 settings.json ( .vscode/settings.json ) エディタ設定 (タブ幅、フォーマッタなど) 言語固有の設定 (リンター、インタープリタパスなど) 変更が即座に反映される (リビルド不要) .devcontainer.json の customizations.vscode.settings でも設定可能 どっちで管理するかは決めておく(個人的には .vscode/settings.json 側で管理する派) 20
デモ2 Dev Containerが設定されたプロジェクトをいくつか見てみます。 21
Dev Containerの設定例 https://github.com/onozaty/fastapi-dynamodb-sample Python + FastAPI + DynamoDB のプロジェクト AWS
CLIやSAMもセットアップ済み https://github.com/onozaty/prisma-db-comments-generator Node.js + PostgreSQL + MySQL のプロジェクト 22
Tips: ユーザー固有の拡張機能を自動インストール すべての Dev Container で使いたい拡張機能がある場合 VS Code のユーザー設定で dev.containers.defaultExtensions
を指定 個人の好みの拡張機能を自動的にインストール可能 例: キーバインド系の拡張機能など { "dev.containers.defaultExtensions": [ "lfs.vscode-emacs-friendly" ] } 23
その他の Tips 詳しくは Dev Containers のメモ を参照 パフォーマンス改善方法 プロキシ環境での設定 非rootユーザーの設定
HTMLファイルのブラウザ表示 その他、実用的な設定やトラブルシューティング 24
自分自身の利用状況 業務で積極的にDev Containersを導入 開発開始時に導入したプロジェクト2件、途中から切り替えたプロジェクト2件 実際、開発工数削減に効果を感じている 個人プロジェクトでもDev Containerを利用 Dev Containerを使うことで、様々なプロジェクトをスムーズに切り替え可能 問題報告時の再現プロジェクトとしてもDev
Containerだと共有しやすい GitHub Codespacesでも動作させられるので再現性が高い 25
おわりに Dev Container に興味を持たれた方は、ぜひお試しください。 導入時に困ったことやわからないことがあれば、お気軽にご相談ください。 26