了解しました。以下に 第6章:6.2 authのサービスをdevcontainerと繋ぐ方法 を、初学者向け・具体例中心・一行コメント付きコード付きでまとめます。


🔖 第6章:app側のdocker-composeの開発対応

6.2 authのサービスをdevcontainerと繋ぐ方法


✅ 要点まとめ


📘 接続イメージ図

VSCode(a)
└── Remote SSH →
    Ubuntu(b)
    ├── /home/dev/app/              ← appのdocker-compose起動元
    │   └── docker-compose.override.yml  ← authの中身を上書き
    └── /home/dev/auth/             ← devcontainer起動中、Railsソースあり
        └── /workspace              ← ここがdevcontainer上の作業フォルダ


🧾 auth devcontainer 側:devcontainer.json の設定

// /home/dev/auth/.devcontainer/devcontainer.json
{
  "name": "auth-dev",

  // Ruby + Rails を含む開発用Dockerfile
  "dockerFile": "Dockerfile",

  // build context(通常は .. → /home/dev)
  "context": "..",

  // コンテナ内の作業ディレクトリ
  "workspaceFolder": "/workspace",

  // ここが重要!devcontainerの /workspace に /home/dev/auth をbind
  "mounts": [
    "source=${localWorkspaceFolder},target=/workspace,type=bind"
  ],

  // サーバ起動に必要な初期コマンド
  "postCreateCommand": "bundle install && rails db:setup",

  // 使用ユーザー
  "remoteUser": "vscode"
}


🧾 app 側:docker-compose.override.yml の設定

# /home/dev/app/docker-compose.override.yml

version: '3.8'

services:
  auth:
    # devcontainer上のコードをappのauthにマウント
    volumes:
      # appのauthに、devcontainerのソースコードを上書きマウント
      - ../auth:/app:cached

    environment:
      # 開発用設定
      - RAILS_ENV=development