LoginSignup
5
2

More than 3 years have passed since last update.

【解決済】macOS Catalinaで NFS マウントに失敗する。(stale NFS file handle or permission denied)

Posted at

環境

OS:macOS Catalina 10.15.1
Docker:
- Engine: 19.03.4
- Compose: 1.24.1
- Machine: 0.16.2

参考サイト

参考にさせていただきました。ありがとうございました:clap_tone3:
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
        • プロジェクト名

)

2./etc/exportsを書き換える

/System/Volumes/Dataが肝です。
Usersとしている部分は1.でプロジェクトを配置したディレクトリの上位ディレクトリなので適宜読み替えてもらってOKです。

mac
% 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/プロジェクト名)

docker-compose.yml
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 を実行です。

私は、このエラーで、半日以上時間を使ってしまいました。。。
わかってしまえばこんなに簡単なのに。。。

参考になれば幸いです!!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2