🔖 第2章:devcontainerとは何か?

2.2 Dockerと何が違う?(mac時代と比較してイメージで説明)


✅ 要点まとめ


🧩 比較:mac時代(c) vs devcontainer環境(a+b)

✅ あなたのmac時代(c)の開発手順(例)

git clone <https://gitlab.example.com/auth.git>
cd auth
docker-compose up -d
docker-compose exec app bash
# 中に入ってbundle installなどを手動実行

Railsであれば、その後こうしますね:

rails db:create db:migrate
rails s -b 0.0.0.0

✅ devcontainer使用時(今のaからの開発)

# VSCode で auth リポジトリを開く
# → .devcontainer が見つかる
# → 「Reopen in Container」ボタンをクリック
# 自動で Dockerfile に従いコンテナ構築、環境を準備

そのままターミナルもエディタも、すべて devcontainer 内の状態で動作する。
→ すでにbundle installやrails sが設定済みなら、立ち上がって完了


🧠 本質的な違い

比較項目 mac(Dockerのみ) devcontainer
Dockerイメージ 自分でビルド or 取得 Dockerfile + devcontainer.jsonで自動
起動方法 docker-composeで自前構築 VSCodeが検知して「Reopen in Container」
環境構築作業 初期化・パッケージ導入は手動 postCreateCommandで自動化可能
エディタ連携 ホスト上のVSCodeで編集 コンテナ内で動作するVSCode環境で編集
設定共有 Dockerfileとdocker-composeの整備が必要 .devcontainer を置くだけで再現性あり
ターミナル/補完 ホスト環境依存 コンテナ内の実行環境そのまま
バージョン差異の影響 ホスト依存で動作不安定に devcontainerが環境差を隔離