環境
OS:macOS Catalina 10.15.1
Docker:
- Engine: 19.03.4
- Compose: 1.24.1
- Machine: 0.16.2
参考サイト
参考にさせていただきました。ありがとうございました
macOS Catalina で NFS が動かない問題に対応する
Docker: the Problem with MacOS Catalina
あと上記サイトを見つけてくれた開発チーム方々、本当に感謝ですm(。。)m
原因
macOS Catalinaは、 Downloads・Documents・Desktopなど
のディレクトリを使用する際は明示的に許可をしなくていけないそうです。
私の場合、デスクトップにプロジェクトを置き、そこから docker-compose up -d --build
をしていた為、権限がないよマウントできないよと怒られていました。
さらにmacOS Catalinaは、NFSの設定も変更されています。
上記を踏まえ対応方法をご紹介します。
1. プロジェクトを/Users/projects配下に移動する
以下のようなディレクトリ構成になるようにプロジェクトを配置しました。
Downloads・Documents・Desktop以外で権限なしでイケるところならどこでもOKかと思います。
(ex.
- root/
- Users/
- projects
- プロジェクト名
- projects
- Users/
)
2./etc/exportsを書き換える
/System/Volumes/Dataが肝です。
Usersとしている部分は1.でプロジェクトを配置したディレクトリの上位ディレクトリなので適宜読み替えてもらってOKです。
% vi /etc/exports
"/System/Volumes/Data/Users" localhost -alldirs -mapall=501:20
% sudo nfsd restart
3.docker-compose.ymlを書き換える
同じく /System/Volumes/Dataが肝です。
プロジェクトからpwdコマンド叩くと、/etc/exportsに定義したルートが上位ディレクトリになると思います。
(ex. /System/Volumes/Data/Users/projects/プロジェクト名)
volumes:
nfs-htdocs:
driver: local
driver_opts:
type: nfs
o: addr=host.docker.internal,actimeo=1,nolock
device: ":/System/Volumes/Data${PWD}"
以上
この状態で docker-compose up -d --build
を実行です。
私は、このエラーで、半日以上時間を使ってしまいました。。。
わかってしまえばこんなに簡単なのに。。。
参考になれば幸いです!!