技術書典19で『DevContainer実践ガイド』を頒布します

技術書典とは、技術書の同人誌即売会イベントです。

techbookfest.org

2025年11月15日(土)から開催される技術書典19にて、新刊『DevContainer実践ガイド』を頒布します。 16日(日)にはオフラインイベントが開催され、そちらにも出展します。

本書のテーマ: DevContainerとは

DevContainerとは、Dockerコンテナに開発に必要なコンパイラやライブラリ、ツールをまとめ、コンテナ内で開発できるようにする仕組みです。 環境構築を定義ファイルで記述できたり、コンテナによって環境を隔離するのに役立ちます。

本書執筆のきっかけ

2020年に『VS Code DevContainer Guidebook』という同人誌を執筆しました。 この本ではDevContainerで「俺の考える開発環境」を構築することを目指して執筆しました。

74th.hateblo.jp

しかし私自身、開発でDevContainerを積極的に使い続けることはできませんでした。 他の人が簡単に構築できる開発環境としてDevContainerを整備することはありましたが、自分が使う環境としては制約が大きいと感じていました。

現在はLLMコーディングエージェントの登場により、私自身がDevContainerを積極的に使うようになりました。 LLMコーディングエージェントはファイル削除コマンドを誤実行することがあり、ホームディレクトリを削除してしまった事例も耳にします。 コンテナなどのサンドボックス環境に隔離することで、安全に開発を委ねられます。 そのコンテナ内でローカル同様のツールをLLMに使わせるには、DevContainerとして整備するのが便利だと考えるようになりました。

再度DevContainerを使うようになったことで、現在の状況を調査し、DevContainerの利用を広めたいと考え本書を執筆しました。

以前の本との違い

2020年時点では、DevContainerと言えばVS Codeの技術でした。 そのため、JetBrainsIDEユーザがいる環境では積極的に採用しにくいと考えていました。 2025年現在ではJetBrainsIDEでもDevContainerをサポートし、CLIでも利用できるようになり、勧めやすい技術になっています。

DevContainerのパッケージマネージャ的な位置づけである DevContainer Features が登場しました。 これを用いて環境構築すれば、より簡単にDevContainerを構築できます。

本書で重点を置いた点

DevContainerのコンテナ設計にはDockerfileを書く以外にも様々な選択肢があります。 それらを整理し、DevContainer設計を考える際の参考になるようにしました。 第2章「DevContainerの構築を考える」で私の考えをまとめています。

DevContainerの利用で躓きやすい点も解説しました。 たとえば、macOS/WindowsのDockerファイルシステムが遅い問題、シークレットの扱い方、非rootユーザの扱い方などです。 本書執筆にあたり調べ直してまとめることで、読者の方が躓きにくくなることを目指しています。

LLMコーディングエージェントでDevContainerを使う方法も解説しています。 DevContainer内でLLMエージェントを使うための認証情報の持ち込み方を細かく説明しています。

気になる方は技術書典19で

気になる方は11月16日(日)の技術書典19オフラインイベントで見本を展示していますので、ぜひお立ち寄りください。

技術書典オンラインマーケットでも頒布します。 技術書典19の開催中は物理本を購入でき、会期終了後にまとめて発送されます。 以下が販売ページです。

techbookfest.org

ぜひお手に取ってみてください!

目次

  • 1.DevContainerのアーキテクチャ
    • 1.1.DevContainerとは
    • 1.2.DevContainerのアーキテクチャ
    • 1.3.DevContainerの制約
    • 1.4.DevContainerの利用開始には一定の準備が必要
  • 2.DevContainerの構築を考える
    • 2.1.DevContainer構築に必要なものを考える
    • 2.2.コンテナの構成を考える
    • 2.3.DevContainerコンテナ構築のフェーズを理解する
    • 2.4.よってどうするべきか
  • 3.DevContainer設定と、各IDECLIでの使い方
    • 3.1.DevContainer構築の設定ファイル
    • 3.2.VS Code
    • 3.3.Cursor
    • 3.4.JetBrains IDE
    • 3.5.DevContainer CLI
    • 3.6.GitHub Codespaces
    • 3.7.Docker Desktop以外のコンテナランタイムアプリケーションは使えるか
  • 4.DevContainerの細かい使い方
    • 4.1.ファイルシステムへのアクセスが遅い問題への対処
    • 4.2.非rootユーザを利用する
    • 4.3.Windowsで改行コードの差分が出る問題
    • 4.4.ホストに影響を与えること
    • 4.5.シークレットの持ち込み方
    • 4.6.GitHubの認証情報の持ち込み方
    • 4.7.dotfilesの利用
    • 4.8.個人の設定を使う
    • 4.9.ここで書かなかったこと
  • 5.DevContainer Features
    • 5.1.DevContainer Featuresとは
    • 5.2.Featuresの使い方
    • 5.3.有用なFeatures
    • 5.4.Featuresを自作する
  • 6.DevContainer構築例
    • 6.1.Go
    • 6.2.Python
    • 6.3.Node.js
    • 6.4.DBをDocker Composeで立ち上げる
  • 7.ネットワーク隔離環境
    • 7.1.LLMコーディングエージェントとセキュリティリスクの議論
    • 7.2.DevContainerで必要なネットワーク通信
    • 7.3.Docker Composeでネットワークを作り、ホストと分離する
    • 7.4.IP制限をする
  • 8.ローカルでのLLMコーディングエージェントでのDevContainerの利用
    • 8.1.考慮すること
    • 8.2.Claude Code
    • 8.3.Codex CLI
    • 8.4.Gemini CLI
    • 8.5.Copilot CLI
    • 8.6.Container Useを使う
    • 8.7.コンテナ隔離環境を利用できなかったもの
  • 9.クラウドLLMコーディングエージェントの環境セットアップ方法
    • ※ DevContainerは利用できませんでしたが、ツールのインストールなど環境セットアップ方法を紹介します
    • 9.1.GitHub Copilot Coding Agent
    • 9.2.Codex
    • 9.3.Jules