Docker Compose の Volume で相対パスを指定したい

データベースのデータボリュームをローカルのファイルシステム上に置きたい場合、 volumes/xxxxx/driver_opts/device には ./pgdata のように相対パスで指定できず、絶対パスを使う必要がある。

相対パス的な指定方法をできないかと探った結果、 ${PWD} といった記述で環境変数を参照できることが分かったので、とりあえず Mac ならこれでよしとする。

version: "3.6"

services:
  db:
    image: postgres:10
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
    driver_opts:
      type: none
      device: ${PWD}/pgdata
      o: bind
Last updated on December 14, 2018