説明
複数のコンテナーで同じボリュームやホストのパスを使うことは有効な構成です。ただし、書き込み権限を持つコンテナーの変更は、他の利用元にも影響します。
想定される影響
調整されていない同時書き込みはデータ破損につながる場合があります。侵害されたコンテナーが共有ファイルを改ざんすると、そのファイルを使うサービスにも影響するおそれがあります。
対処方法
共有が不要なデータは分離してください。必要な共有では書き込み元を決め、読み取りだけが必要なコンテナーには読み取り専用でマウントしてください。
例
共有していた./logicから、backendを別の./binパスに移します。両方のコンテナーで同じファイルが必要な場合は、この変更の代わりに適切な共有権限と同時アクセスの方法を定めてください。
変更前
yaml
version: "3"
services:
frontend:
build: frontend
volumes:
- ./logic:/app
backend:
build: backend
volumes:
- ./logic:/app
変更後
yaml
version: "3"
services:
frontend:
build: frontend
volumes:
- ./logic:/app
backend:
build: backend
volumes:
- ./bin:/app