docksal: Catalina error in /etc/exports file

Description

When running fin project start or fin project create it throws an error regarding a /etc/exports misconfiguration

Steps to reproduce the issue:

  1. Run MacOS Catalina 10.15 Beta (19A546d)
  2. Run fin project create or fin project start

Describe the results you received:

Configuring NFS shares...
 ERROR:  There is an error in /etc/exports file
        Read through the error message(s) below and fix errors in /etc/exports manually
        Then run fin system reset
-----------------
exports:3: exported dir/fs mismatch: /Users /System/Volumes/Data
-----------------
 ERROR:  NFS sharing has failed

Describe the results you expected: Docksal to create / start projects

Output of fin config:

fin config output
 ALERT:  Some Docksal services were not running
         Restarting Docksal system services...
Configuring network settings...
Configuring NFS shares...
 ERROR:  There is an error in /etc/exports file
        Read through the error message(s) below and fix errors in /etc/exports manually
        Then run fin system reset
-----------------
exports:3: exported dir/fs mismatch: /Users /System/Volumes/Data
-----------------
 ERROR:  NFS sharing has failed

Output of fin sysinfo:

fin sysinfo output
███  OS
Darwin Mac OS X 10.15
Darwin Stevens-MacBook-Pro.local 19.0.0 Darwin Kernel Version 19.0.0: Sun Aug 18 23:37:31 PDT 2019; root:xnu-6153.0.166~17/RELEASE_X86_64 x86_64

███  ENVIRONMENT
MODE : Docker Desktop

███  FIN
fin version: 1.86.2

███  DOCKER COMPOSE
EXPECTED VERSION: 1.23.2
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0h  27 Mar 2018

███  DOCKER
EXPECTED VERSION: 18.09.2

Client: Docker Engine - Community
Version:           18.09.2
API version:       1.39
Go version:        go1.10.8
Git commit:        6247962
Built:             Sun Feb 10 04:12:39 2019
OS/Arch:           darwin/amd64
Experimental:      false

Server: Docker Engine - Community
Engine:
Version:          19.03.2
API version:      1.40 (minimum version 1.12)
Go version:       go1.12.8
Git commit:       6a30dfc
Built:            Thu Aug 29 05:32:21 2019
OS/Arch:          linux/amd64
Experimental:     true
containerd:
Version:          v1.2.6
GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version:          1.0.0-rc8
GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version:          0.18.0
GitCommit:        fec3683

███  DOCKSAL: PROJECTS
project             STATUS              virtual host        project root

███  DOCKSAL: VIRTUAL HOSTS
Error: No such container: docksal-vhost-proxy
No virtual hosts found

███  DOCKSAL: DNS
curl: (6) Could not resolve host: dns-test.docksal
ERROR: Requesting http://dns-test.docksal failed!

███  DOCKER: RUNNING CONTAINERS
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

███  DOCKER: NETWORKS
NETWORK ID          NAME                   DRIVER              SCOPE
ad5a21e6f0f0        _default               bridge              local
e8f7aaf5be5f        abd_default            bridge              local
c596ba0c3b52        ansible-ui_default     bridge              local
f1bbc634a3f6        bridge                 bridge              local
e4b5637221bf        dashboard_default      bridge              local
68769ce034bd        devilbox_app_net       bridge              local
7ec0c6f9ecc1        dmpl_default           bridge              local
32719f26db8b        dodashboard_default    bridge              local
9e10ff65bd5e        dps_default            bridge              local
db72b118092c        host                   host                local
aef69e3ed472        none                   null                local
63e88f4bdfd0        quickstart_default     bridge              local
44af74af2f52        slick-rework_default   bridge              local
f7c6d4e1e7ee        static-site_default    bridge              local
75b1c6747925        steven_default         bridge              local

███  DOCKER DESKTOP
EXPECTED VERSION: 2.0.0.3
2.1.0.2

███  HDD Usage
Filesystem      Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1s5   233Gi   14Gi  151Gi     9%  480123 2447621197    0%   /
devfs          190Ki  190Ki    0Bi   100%     660          0  100%   /dev
/dev/disk1s1   233Gi   64Gi  151Gi    30%  606975 2447494345    0%   /System/Volumes/Data
/dev/disk1s4   233Gi  3.0Gi  151Gi     2%       4 2448101316    0%   /private/var/vm
map auto_home    0Bi    0Bi    0Bi   100%       0          0  100%   /System/Volumes/Data/home
/dev/disk1s3   233Gi  998Mi  151Gi     1%      46 2448101274    0%   /Volumes/Recovery

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 19 (9 by maintainers)

Most upvoted comments

Quick fix for Catalina:

fin config set --global DOCKSAL_NFS_PATH=/System/Volumes/Data/Users

image

Confirming this is the case for me after updating to Catalina today. I’ve gone through a series of errors / fix attempts that seem to be related to this vagrant bug as well, assuming it’s all a reaction to the same change.

https://github.com/hashicorp/vagrant/pull/11105

Confirming that this has been addressed in macOS Catalina 10.15.1 🎉 No workarounds necessary on our end.

image

user@Users-Mac ~ % fin sysinfo
███  OS
Darwin Mac OS X 10.15.1
Darwin Users-Mac.local 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64

███  ENVIRONMENT
MODE : VirtualBox VM
DOCKER_HOST : tcp://192.168.64.100:2376
DOCKSAL_NFS_PATH : /Users
NFS EXPORTS:

# <ds-nfs docksal
/Users 192.168.64.1 192.168.64.100 -alldirs -maproot=0:0
# ds-nfs>

███  FIN
fin version: 1.90.0

███  DOCKER COMPOSE
EXPECTED VERSION: 1.24.1
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

███  DOCKER
EXPECTED VERSION: 19.03.2

Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:26:49 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfca03
  Built:            Thu Aug 29 05:32:56 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

███  DOCKER MACHINE
EXPECTED VERSION: 0.16.2
docker-machine version 0.16.2, build bd45ab13

NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
docksal   *        virtualbox   Running   tcp://192.168.64.100:2376           v19.03.2   

███  DOCKSAL: PROJECTS
project             STATUS              virtual host        project root

███  DOCKSAL: VIRTUAL HOSTS
No virtual hosts found

███  DOCKSAL: DNS
Successfully requested http://dns-test.docksal

███  DOCKER: RUNNING CONTAINERS
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                    PORTS                                                    NAMES
7644ee13ef41        docksal/ssh-agent:1.3     "docker-entrypoint.s…"   46 seconds ago      Up 45 seconds (healthy)                                                            docksal-ssh-agent
51eef2c29d18        docksal/dns:1.1           "docker-entrypoint.s…"   48 seconds ago      Up 47 seconds (healthy)   192.168.64.100:53->53/udp                                docksal-dns
fef53e8dceb8        docksal/vhost-proxy:1.5   "docker-entrypoint.s…"   48 seconds ago      Up 48 seconds (healthy)   192.168.64.100:80->80/tcp, 192.168.64.100:443->443/tcp   docksal-vhost-proxy

███  DOCKER: NETWORKS
NETWORK ID          NAME                DRIVER              SCOPE
5d94a8da56c7        _default            bridge              local
f7e024841e7b        bridge              bridge              local
7d70ae76662e        host                host                local
e8a937ba1f86        none                null                local

███  VIRTUALBOX
EXPECTED VERSION: 5.2.32
5.2.32r132073

███  DOCKSAL MOUNTS
192.168.64.1:/Users on /Users type nfs (rw,noatime,nodiratime,vers=3,rsize=65536,wsize=65536,namlen=255,acregmin=1,acregmax=1,acdirmin=1,acdirmax=1,hard,nocto,nolock,noacl,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.64.1,mountvers=3,mountport=873,mountproto=udp,local_lock=all,addr=192.168.64.1)

███  HDD Usage
Filesystem                Size      Used Available Use% Mounted on
/dev/sda1                46.1G    240.2M     43.5G   1% /mnt/sda1

Take two on “Quick fix for Catalina”:

1) Override the NFS path to workaround the nfsd bug in Catalina.

fin config set --global DOCKSAL_NFS_PATH=/System/Volumes/Data/Users
fin vm mount

2a) Either access and operate your projects via /System/Volumes/Data/Users/<user>/Projects/... from now on…

-OR-

2b) Create a temporary symlink inside the VM (gone when VM restarts):

fin vm ssh 'sudo ln -s /System/Volumes/Data/Users /Users'
fin vm mount

-OR-

2c) Create a persistent symlink inside the VM:

fin vm ssh
sudo touch /var/lib/boot2docker/bootlocal.sh
sudo chmod +x /var/lib/boot2docker/bootlocal.sh
echo 'ln -s /System/Volumes/Data/Users /Users' | sudo tee -a /var/lib/boot2docker/bootlocal.sh
<ctrl+d>
fin vm restart

Unfortunately, there is no alternative to 2c for Docker Desktop. If you are using Docker Desktop with NFS volumes, you’ll have to stick with 2a or 2b for now.

@matthensley1 yeah, I just noticed this as well. Going to post an update for that as well in a few.