Skip to content

v1.19.0-alpha2: Xdebug port 9003, bind-mount files with mutagen

Pre-release
Pre-release

Choose a tag to compare

@rfay rfay released this 16 Jan 20:20
a15b171

Installation/Upgrade

See the installation instructions for details, but it's easy:

  • macOS Linux, and WSL2 Homebrew (ddev-edge channel only): brew install drud/ddev-edge/ddev or just brew upgrade drud/ddev-edge/ddev ). (You may need a brew update for homebrew to find the new release.).
  • Traditional Windows: Use choco upgrade -y --pre ddev to get this one, or download the ddev_windows_installer below.
  • Linux or WSL2 and macOS with the install_ddev.sh script: Download the script, make it executable, and run it with the version: ./install_ddev.sh <version> or or curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh v1.19.0-alpha2
  • And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs.
  • Consider ddev delete images after upgrading to free up disk space used by previous docker image versions. This does no harm.

🚛 Key changes

  • You can now run ddev without Docker Desktop on both macOS and Windows.
    • Experimental colima support on macOS works great. Note that Colima is a new project and may experience instability, but it seems to work wonderfully. 🙏🏼 to Tag1 Consulting for sponsoring this feature!
    • On Windows you can install docker inside wsl2 instead of using Docker Desktop.
  • DDEV now can work with a remote docker instance.
  • DDEV now supports docker contexts and the DOCKER_HOST environment variable.
  • You can now install the current HEAD version of ddev with brew unlink ddev && brew install --HEAD drud/ddev/ddev
  • Bare in-container hostnames: You can (once again) use in-container hostnames like db or solr without having to use fully-qualified names like ddev-<project>-db. Thanks to @jonaseberle for heroic work pioneering a path forward for this, it will make using DDEV easier for everybody.
  • You can remove all links: sections from custom service definitions that mapped a service name onto itself (e.g. links: solr:solr). This used to be needed to prioritize name resolving inside the project, but it's now taken care of by a project-local network. (However, these links: lines do no harm.)
  • WordPress default configuration is significantly improved thanks to @timnolte.
  • Database snapshots are now gzipped, resulting in perhaps 20x size difference. A snapshot that used to use 207MB on disk is now 5MB.
  • Networking:
    • There is now a dedicated project-local network which is managed by docker-compose. All project services are in that network by default, even without any networks: stanza. From inside docker-compose.*.yaml files you would refer to it as default. Its global docker network name is ddev-<projectname>_default. This change allowed us to make sure that name resolving would always prioritize project-local services.
    • There is a new network named ddev, created automatically on ddev start. Its default function is that it is the network which contains ddev-router. As such you have to add it to all services to it that need to be reached by the router, which normally means 3rd-party services that have HTTP_EXPOSE in them. (see "caveats")
    • This network is also reused for inter-project communication (for example a db that you want to access as ddev-<projectname>-db from another project during upgrading). See "caveats" on how to enable cross-project access.

≏ Minor changes

  • WSL2 xdebug problems: As also released in v1.18.3-alpha1, a bug affected some users. There was new code to detect when WSL2 was running with Docker Desktop, and it wasn't robust enough, so didn't properly detect Docker Desktop in some cases. That meant that xdebug debugging could fail for people on WSL2+Docker Desktop.
  • See Changes in v1.19.0-alpha1

⚠️ Caveats

  • xdebug now connects to the new standard port 9003 instead of port 9000. With PhpStorm this should be invisible to all, since it listens on both ports. With vscode you may have to edit the launch.json file, see https://ddev.readthedocs.io/en/latest/users/snippets/launch.json
  • A new networks stanza needs to be added to all 3rd-party docker-compose.*.yaml services that use HTTP_EXPOSE (like solr) or that want to be reached from other ddev projects (If you are unsure, add the stanza. It does not hurt):
      networks: [default, ddev_default]
  • With Colima you cannot mount single files into a container. This means that the traditional docker-compose.solr.yaml can't work, because it tries to mount a single file. However, the soon-to-be-standard ddev-contrib solr recipe should work because it doesn't try to mount a single file.
  • There are loads of significant changes here, including how docker works and what docker environments you can work with. Please pay attention and report your experiences, good or bad! 🙏🏼

🙏🏼🙏🏼🙏🏼 Thanks!

  • Tag1 Consulting sponsored the mutagen + remote docker work. Thanks!
  • Thanks in advance to all of you edge users who will test out this prerelease.

What's Changed

  • Use port 9003 for xdebug, fixes #2898, fixes #3504 by @rfay in #3506
  • [docs only] Fix links broken by move of old custom commands by @rfay in #3509
  • Don't fail if composer self-update fails in web image build (like with no internet) by @rfay in #3508
  • Mount .git and upload_dir with bind-mount when using mutagen, fixes #3505, fixes #3400, fixes #3384, fixes #3357 by @rfay in #3507
  • [tests only] composer drush is failing, fix up by @rfay in #3512
  • Make more efficient chown of mutagen volume, speed up start by @rfay in #3515
  • v1.19.x vs v1.18.x compatibility with 3rd party services, especially solr by @rfay in #3510
  • Use regular colima release instead of HEAD, change composer create-project approach by @rfay in #3519
  • Ignore a couple of misbehaving spellcheck items by @rfay in #3525

New Contributors

Full Changelog: v1.18.2...v1.19.0-alpha2