コンテナー間の共有ボリュームを確認

データ共有の必要性と書き込み権限を確認してください。

説明

複数のコンテナーで同じボリュームやホストのパスを使うことは有効な構成です。ただし、書き込み権限を持つコンテナーの変更は、他の利用元にも影響します。

想定される影響

調整されていない同時書き込みはデータ破損につながる場合があります。侵害されたコンテナーが共有ファイルを改ざんすると、そのファイルを使うサービスにも影響するおそれがあります。

対処方法

共有が不要なデータは分離してください。必要な共有では書き込み元を決め、読み取りだけが必要なコンテナーには読み取り専用でマウントしてください。

例

共有していた./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

参考資料