docksal: Docksal breaks after updating to Docker 2.1.0.0 (macOS)

Description

After updating to Docker desktop 2.1.0.0 stable on macOS 10.14.6, Docksal projects stopped loading on the browser. Docker restarts, fin system restart, and full OS restart did not fix the issue. I could only get them to load again by adding an entry to my hosts file with fin hosts add. My guess is that the new Docker version has some network/dns updates that conflict with Docksal.

Steps to reproduce the issue:

  1. Upgrade Docker to 2.1.0.0 on macOS
  2. fin up a project
  3. Load docksal URL on browser

Describe the results you received:

Site can’t be reached.

Describe the results you expected:

Site loading correctly.

Output of fin config:

fin config output
$ fin config
---------------------
COMPOSE_PROJECT_NAME_SAFE: imprint-plus
COMPOSE_FILE:
/Users/jaime/.docksal/stacks/volumes-unison.yml
/Users/jaime/.docksal/stacks/stack-default.yml
/Users/jaime/beargroup/imprint-plus/.docksal/docksal.yml
ENV_FILE:
/Users/jaime/beargroup/imprint-plus/.docksal/docksal.env
/Users/jaime/beargroup/imprint-plus/.docksal/docksal-local.env

PROJECT_ROOT: /Users/jaime/beargroup/imprint-plus
DOCROOT: .
VIRTUAL_HOST: imprint-plus.docksal
VIRTUAL_HOST_ALIASES: *.imprint-plus.docksal
IP: 192.168.64.100
MYSQL: 192.168.64.100:33078

Docker Compose configuration
---------------------
services:
  cli:
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      BLACKFIRE_CLIENT_ID: null
      BLACKFIRE_CLIENT_TOKEN: null
      DOCROOT: .
      DRUSH_ALLOW_XDEBUG: '0'
      GIT_USER_EMAIL: null
      GIT_USER_NAME: null
      HOST_GID: '20'
      HOST_UID: '501'
      PHP_IDE_CONFIG: serverName=imprint-plus.docksal
      SECRET_ACAPI_EMAIL: null
      SECRET_ACAPI_KEY: null
      SECRET_PLATFORMSH_CLI_TOKEN: null
      SECRET_SSH_PRIVATE_KEY: null
      SECRET_TERMINUS_TOKEN: null
      VIRTUAL_HOST: imprint-plus.docksal
      XDEBUG_CONFIG: remote_connect_back=0 remote_host=192.168.64.1
      XDEBUG_ENABLED: '0'
    hostname: cli
    image: docksal/cli:2.5-php7.2
    volumes:
    - docksal_ssh_agent:/.ssh-agent:ro
    - cli_home:/home/docker:rw
    - project_root:/var/www:rw,nocopy
  db:
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: null
      MYSQL_DATABASE: default
      MYSQL_INITDB_SKIP_TZINFO: null
      MYSQL_ONETIME_PASSWORD: null
      MYSQL_PASSWORD: user
      MYSQL_RANDOM_ROOT_PASSWORD: null
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: user
    hostname: db
    image: docksal/db:1.1-mysql-5.7
    ports:
    - 33078:3306/tcp
    volumes:
    - db_data:/var/lib/mysql:rw
    - project_root:/var/www:ro,nocopy
  elasticsearch:
    dns:
    - 192.168.64.100
    - 8.8.8.8
    - 192.168.64.100
    - 8.8.8.8
    entrypoint: /usr/share/elasticsearch/docksal/entrypoints/elasticsearch.sh
    environment:
      ES_JAVA_OPTS: -Xms512m -Xmx512m
      bootstrap.memory_lock: "true"
    hostname: elasticsearch
    image: elasticsearch:6.5.3
    ports:
    - 9200/tcp
    ulimits:
      memlock:
        hard: -1
        soft: -1
    volumes:
    - /Users/jaime/beargroup/imprint-plus/.docksal:/usr/share/elasticsearch/docksal:rw
  unison:
    environment:
      SYNC_DESTINATION: /destination
      SYNC_MAX_INOTIFY_WATCHES: '524288'
      SYNC_NODELETE_SOURCE: '0'
      SYNC_PREFER: newer
      SYNC_VERBOSE: '1'
      UNISON_GID: '20'
      UNISON_UID: '501'
    image: docksal/unison
    privileged: true
    volumes:
    - project_root:/destination:rw
    - /Users/jaime/beargroup/imprint-plus:/source:rw
  web:
    depends_on:
      cli:
        condition: service_started
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      APACHE_BASIC_AUTH_PASS: null
      APACHE_BASIC_AUTH_USER: null
      APACHE_DOCUMENTROOT: /var/www/.
      APACHE_FCGI_HOST_PORT: cli:9000
    hostname: web
    image: docksal/apache:2.4-2.3
    labels:
      io.docksal.cert-name: none
      io.docksal.permanent: "false"
      io.docksal.project-root: /Users/jaime/beargroup/imprint-plus
      io.docksal.virtual-host: imprint-plus.docksal,*.imprint-plus.docksal,imprint-plus.docksal.*
    volumes:
    - project_root:/var/www:ro,nocopy
version: '2.1'
volumes:
  cli_home: {}
  db_data: {}
  docksal_ssh_agent:
    external: true
    name: docksal_ssh_agent
  project_root: {}

---------------------

Output of fin sysinfo:

fin sysinfo output
$ fin sysinfo
███  OS
Darwin Mac OS X 10.14.6
Darwin Macbearth.local 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/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.1
API version:      1.40 (minimum version 1.12)
Go version:       go1.12.5
Git commit:       74b1e89
Built:            Thu Jul 25 21:17:52 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

███  DOCKSAL: PROJECTS
project             STATUS                    virtual host                                                         project root
imprint-plus        Up 10 minutes (healthy)   imprint-plus.docksal,*.imprint-plus.docksal,imprint-plus.docksal.*   /Users/jaime/beargroup/imprint-plus

███  DOCKSAL: VIRTUAL HOSTS
*.imprint-plus.docksal
imprint-plus.docksal.*
imprint-plus.docksal

███  DOCKSAL: DNS
curl: (28) Resolving timed out after 2519 milliseconds
ERROR: Requesting http://dns-test.docksal failed!

███  DOCKER: RUNNING CONTAINERS
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                    PORTS                                                    NAMES
f5742b8b12ce        docksal/ssh-agent:1.2      "docker-entrypoint.s…"   10 minutes ago      Up 10 minutes (healthy)                                                            docksal-ssh-agent
3056205d9421        docksal/dns:1.1            "docker-entrypoint.s…"   10 minutes ago      Up 10 minutes (healthy)   192.168.64.100:53->53/udp                                docksal-dns
d75a792b5ec5        docksal/vhost-proxy:1.5    "docker-entrypoint.s…"   10 minutes ago      Up 10 minutes (healthy)   192.168.64.100:80->80/tcp, 192.168.64.100:443->443/tcp   docksal-vhost-proxy
d81abc64a019        docksal/apache:2.4-2.3     "httpd-foreground"       6 days ago          Up 10 minutes (healthy)   80/tcp, 443/tcp                                          imprint-plus_web_1
6c25697f89c6        docksal/cli:2.5-php7.2     "/opt/startup.sh sup…"   6 days ago          Up 10 minutes (healthy)   22/tcp, 3000/tcp, 9000/tcp                               imprint-plus_cli_1
f0fec6c1953d        elasticsearch:6.5.3        "/usr/share/elastics…"   2 weeks ago         Up 10 minutes             9300/tcp, 0.0.0.0:32768->9200/tcp                        imprint-plus_elasticsearch_1
025692cbc5d9        docksal/db:1.1-mysql-5.7   "/entrypoint.sh mysq…"   2 weeks ago         Up 10 minutes             0.0.0.0:33078->3306/tcp                                  imprint-plus_db_1
ddf0a551fa9a        docksal/unison             "bg-sync"                2 weeks ago         Up 10 minutes                                                                      imprint-plus_unison_1

███  DOCKER: NETWORKS
NETWORK ID          NAME                   DRIVER              SCOPE
596ba49a2edc        _default               bridge              local
7433d424494f        bridge                 bridge              local
78678b4ed24a        host                   host                local
9ee7b4686b0b        imprint-plus_default   bridge              local
48e12c474945        none                   null                local

███  DOCKER DESKTOP
EXPECTED VERSION: 2.0.0.3
2.1.0.0

███  HDD Usage
Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   466Gi   89Gi  373Gi    20% 1395077 9223372036853380730    0%   /
devfs          189Ki  189Ki    0Bi   100%     656                   0  100%   /dev
/dev/disk1s4   466Gi  1.0Gi  373Gi     1%       1 9223372036854775806    0%   /private/var/vm
map -hosts       0Bi    0Bi    0Bi   100%       0                   0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0                   0  100%   /home
/dev/disk1s5   466Gi  2.0Gi  373Gi     1%  231255 9223372036854544552    0%   /Volumes/dev

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 15 (8 by maintainers)

Most upvoted comments

Another issue that popped up after upgrading to 2.1.0.0 and then downgrading back to 2.0.0.3

When initializing a stack that pulls new images from Docker Hub:

Pulling cli (docksal/cli:2.6-php7.3)...
Traceback (most recent call last):
  File "docker-compose", line 6, in <module>
  File "compose/cli/main.py", line 71, in main
  File "compose/cli/main.py", line 127, in perform_command
  File "compose/cli/main.py", line 1080, in up
  File "compose/cli/main.py", line 1076, in up
  File "compose/project.py", line 475, in up
  File "compose/service.py", line 352, in ensure_image_exists
  File "compose/service.py", line 1217, in pull
  File "compose/progress_stream.py", line 101, in get_digest_from_pull
  File "compose/service.py", line 1182, in _do_pull
  File "site-packages/docker/api/image.py", line 381, in pull
  File "site-packages/docker/auth.py", line 48, in get_config_header
  File "site-packages/docker/auth.py", line 96, in resolve_authconfig
  File "site-packages/docker/auth.py", line 127, in _resolve_authconfig_credstore
  File "site-packages/dockerpycreds/store.py", line 25, in __init__
dockerpycreds.errors.InitializationError: docker-credential-desktop not installed or not available in PATH
[48612] Failed to execute script docker-compose

Solution here: https://github.com/docker/for-mac/issues/3785#issuecomment-519170758

Upstream issue - https://github.com/docker/for-mac/issues/3775

P.S. Besides this one, I’m experiencing all sorts of other weird issues with Docker Desktop for Mac v2.1.0.0. Please stay away from it for now and stick with or downgrade to Docker Desktop v2.0.0.3.

I can confirm that this is now fixed. Docksal DNS resolver works 🎉