了解しました。以下に第5章の続きとして、
volumes
(ボリューム)は、ホスト(Ubuntu側)のフォルダと、コンテナ内部のフォルダをリンクする仕組みtype=bind
を使えば、ホストで修正したファイルが即座にコンテナに反映されるdevcontainer.json
のmounts
項目、またはdocker-compose.override.yml
で設定+-------------------+ マウント +----------------------------+
| ホスト(Ubuntu b) | ─────────────▶ | コンテナ(devcontainer) |
| ~/auth/app | ◀──────────── | /workspace(開発ディレクトリ) |
+-------------------+ リアルタイム同期 +----------------------------+
→ ファイルを保存した瞬間、appのauthサービスに変更が反映される
// .devcontainer/devcontainer.json
{
// 他の設定は省略
// ホストのフォルダとコンテナの作業ディレクトリを同期
"mounts": [
// ホストのdevcontainerを開いているディレクトリ(auth)を
// コンテナの /workspace にマウント(開発コードがここに置かれる)
"source=${localWorkspaceFolder},target=/workspace,type=bind"
]
}
# app/docker-compose.override.yml
services:
auth:
volumes:
# ホストの ~/auth ディレクトリをコンテナの /app にマウント
# これにより、devcontainerの編集内容がapp側のauthサービスに反映される
- ../auth:/app:cached