docksal / docksal

Unified, Docker 🐳 powered web development environments for macOS, Windows, and Linux
https://docksal.io
MIT License
685 stars 179 forks source link

Catalina error in /etc/exports file #1130

Closed StevenH1901 closed 4 years ago

StevenH1901 commented 5 years ago

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 ```
achekulaev commented 5 years ago

Please post contents of /etc/exports

StevenH1901 commented 5 years ago

Sorry, I'm not getting any notifications from GitHub for some reason. My /etc/exports is empty

matthensley1 commented 4 years ago

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

ApacheEx commented 4 years ago

got the same issue after upgrading to 10.15 (MacOS Catalina)

image

lmakarov commented 4 years ago

We are looking into a hotfix for this, but for the time being, DO NOT upgrade to Catalina.

For those, who already upgraded, you may switch to the Docker Desktop mode instead of VirtualBox as a stopgap solution - https://docs.docksal.io/getting-started/docker-modes/

lmakarov commented 4 years ago

Quick fix for Catalina:

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

image

matthensley1 commented 4 years ago

I attempted this yesterday, and it allows my vm to boot, but doesn't seem to mount properly. When I execute 'fin bash', I'm taken to an empty docroot, and projects don't load in the browser. If others chime in that this works for them, it may just be something wrong with my config...

lmakarov commented 4 years ago

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

lmakarov commented 4 years ago

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.

carnnia commented 4 years ago

I tried 1 + 2a but got the . following error:

/System/Volumes/Data/Users/caseycarnnia/work/evo-docsal 
 $ ls -la
total 0
drwxr-xr-x   4 caseycarnnia  staff   128B Oct 14 13:19 .
drwxr-xr-x  12 caseycarnnia  staff   384B Oct 14 13:17 ..
drwxr-xr-x   2 caseycarnnia  staff    64B Oct 14 13:18 .docsal
drwxr-xr-x   2 caseycarnnia  staff    64B Oct 14 13:19 docroot

 /System/Volumes/Data/Users/caseycarnnia/work/evo-docsal 
 $ fin  project start
 ALERT:  Some Docksal services were not running
         Restarting Docksal system services...
Configuring network settings...
Configuring NFS shares...
Writing /etc/exports...
Password:
Restarting nfsd...
Resetting Docksal system services...
 `*` proxy
` *` dns
   upstream 192.168.86.1
Enabling automatic *.docksal DNS resolver...
Clearing DNS cache...
 `*` ssh-agent
Identity added: id_rsa (caseycarnnia@Caseys-MacBook-Pro.local)
Key 'id_rsa' already loaded in the agent. Skipping.
 **ERROR:  The path is not accessible in Docker
        Could not access /System/Volumes/Data/Users/caseycarnnia/work/evo-docsal
        It is not shared from your host to Docker.**
 $ sudo cat /private/etc/exports
Password:

`#` <ds-nfs docksal
/System/Volumes/Data/Users 192.168.64.1 192.168.64.100 -alldirs -maproot=0:0
`#` ds-nfs>
lmakarov commented 4 years ago

@carnnia you'll need to do fin vm mount or fin vm restart after updating the settings in 1. I updated my comment above to mention that.

carnnia commented 4 years ago

Thank you @lmakarov That worked nicely.

sasankaj commented 4 years ago

I was able to get docksal with docker for mac working by switching to unison volumes. In my docksal environment configuration (docksal.env), I added the line DOCKSAL_VOLUMES=unison and reset my containers.

paoga87 commented 4 years ago

Quick fix for Catalina:

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

image

Thank you, @lmakarov. Your quick fix worked for me!

anacona16 commented 4 years ago

This was happening for me using Catalina Beta, today I installed Docksal (using VB) and is it's working without any fix.

achekulaev commented 4 years ago

@anacona16 what version of macOS do you have now?

anacona16 commented 4 years ago

Hi @achekulaev, I'm using the latest stable macOS Catalina.

lmakarov commented 4 years ago

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
katannshaw commented 3 years ago

I'm using Catalina 10.15.7 and it still wasn't working for me. I finally found a fix in Docksal's own documentation at https://v1-11-0--docs-docksal-io.netlify.app/troubleshooting/common-issues/#issue-04

It basically involved me opening /etc/exports, removing any of the offending exports, saving that file, and running the docksal install command again (in my case for a mac DOCKER_NATIVE=1 bash <(curl -fsSL https://get.docksal.io).