mac時代(開発環境c)でもDockerで環境は構築できていた
しかし、**devcontainerはそれに加えて「開発の自動化」と「開発者体験の統合」**を提供する
Dockerは「環境をつくる」ための道具
devcontainerは「開発を始めるまでのすべてをパッケージ」してくれる道具
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
# 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が環境差を隔離 |