github ddev/ddev v1.9.0
v1.9.0: DNS name resolution, ddev share, tracking stopped projects, loads-o-hooks

latest releases: v1.23.5, feature_install-ddev_v1.23.5, v1.23.4...
5 years ago

Installation/Upgrade

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

  • Please stop/remove all projects first, this does no harm: ddev remove --all --stop-ssh-agent
  • Delete your ~/.ddev/global_config.yaml (This is not strictly necessary but a user upgrading from a very old ddev version had a crash/panic because of the changed format in the old file.)
  • macOS Homebrew and Linux Linuxbrew: brew upgrade ddev (If you'd like to be on the ddev-edge homebrew channel, you can brew tap drud/ddev-edge)
  • Windows: Download the ddev_windows_installer below or with Chocolatey choco install ddev or choco upgrade ddev
  • And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs.
  • You'll want to do a ddev config && ddev start for each project just to update the config file so it has the current APIVersion in it. Otherwise ddev will keep pestering you to do that.

Caveats

  • The default domain used with ddev is now "ddev.site" instead of "ddev.local", see below. If you're like me, that will cause some occasional problems with what your fingers may type while the transition continues. (If you want to still use "ddev.local", use project_tld: ddev.local in your config.yaml.)
  • The drush setup inside the web container has changed; /usr/local/bin/drush is now "drush launcher"; it falls back to /usr/local/bin/drush8 if no site-local drush is found.
  • On Linux with nfsmount_enabled, if your computer gets a different IP address from DHCP routinely, you may need to adjust /etc/exports or re-run the NFS setup script to allow access to your new IP (from your new IP)

Key changes in v1.9.0

  • Stopped projects are now shown by ddev list and you can also start (or stop, or pause) them with ddev start <project> or ddev start --all (be careful with that!).

    A list of all projects is now maintained in ~/.ddev/global_config.yaml, and so even when project doesn't show up in docker's container tags, it is still available.

    Note that projects won't show up with ddev list until they have been started once.

    Please do report any issues you have with this, as this is a wide-ranging change. All ddev commands used to rely solely on docker container tags, so keeping an additional external catalog of them is huge.

  • The hook system has been significantly expanded, with pre- and post- hooks for most ddev commands, including post-composer, post-stop, etc. And you can use "exec" in any container, not just the web container. See latest docs on hook system

  • The new ddev share command allows you to share your project on the internet when you need someone to see it or you want to test with mobile devices or extra browsers, etc. This requires the free ngrok tool and optionally a free or paid ngrok account.

  • The default domain changes from "ddev.local" to "ddev.site", and DNS is used by default (when internet is available) to resolve the IP address. This means that /etc/hosts does not need to be modified, and administrative privileges are not (normally) required on ddev start. (This doesn't work on Docker Toolbox/Win10 Home.). You can change the domain in config.yaml, and you can turn off this behavior in config.yaml.)

Smaller Changes

  • (on Drupal) drush attempts to use the https URL when possible and mkcert root CAs are installed.
  • ddev list, ddev describe, and ddev start try to limit the number of URLs thrown at you by using the appropriate https or http URL only (even though the other still works).
  • The drush configuration tries to use https URLs where possible for things like drush uli.
  • The configuration to use drush on the host has changed, and the ddev_drush_settings.php file is obsolete and can be removed. And drush on the host works fine for most things, even works on Windows in a lot of cases (inside the docroot).
  • NFS installation scripts attempt to provide a more robust security environment, where the NFS share won't be accessible off the development machine.
  • Container and php timezone configuration now defaults to "UTC", but...
  • A timezone can now be configured in config.yaml, and affects both the container timezone and the php default timezone.
  • hirak/prestissimo is now composer-global-installed in the web container; it speeds up uncached composer installs by 2x or more.
  • The configuration of drush in the container has changed. /usr/local/bin/drush is now drush launcher, and it falls back to /usr/local/bin/drush8 if there is no site-local drush9.
  • Drupal settings.ddev.php is recreated on ddev start for teams that share configuration and don't want team members running ddev config, which used to be where it was created.
  • post-start hooks are always run on ddev start, even if they've already been run in the web container. They used to check to see if they'd already been run, mostly for apt-get install activities, but since those are now mostly handled by webimage_extra_packages this doesn't make sense any more.
  • ddev tries even harder to make sure that offline working is possible. It tries to make sure that update checks and instrumentation don't happen when offline. It can't do anything about an image you didn't pull while online though.

Thanks!

There was loads of community collaboration in this release, we so appreciate your participation!

  • @ctorgalson fixed a messy documentation markdown problem.
  • @damienmckenna promoted a much more robust use of https URLs in drush and major improvements to the memcache service example.
  • @powpow12 improved the drupal6/7 quickstart docs.

We love your PRs and issues, keep them coming! You're the reason this project works.

Commits since v1.8.0

198e9cd Improve linux setup script and docs (#1668)
b4b492c Bump container versions for v1.9.0 release (#1670)
e35a29c Fix ddev share anomalies (#1667)
0779766 Special-case validation of timezone on windows, since golang windows can't do it (#1666)
b6cec4e Minor fixups for ddev share (#1664)
a717ffb Provide docker pull input on ddev start, fixes #1656 (#1661)
6ba9fd6 Rethink hooks and tasks, for #1372, fixes #1321, fixes #1071, fixes #1038 (#1634)
9dd0336 Support timezone in container and PHP, fixes #1658, fixes #1417, #709 (#1660)
92bc6d7 Add ddev share command, fixes #375 (#1643)
4ef7da1 Add hirak/prestissimo, fixes #1650 (#1654)
cfd5ee1 documentation not parsing markdown lists correctly, fixes #1646 (#1655)
c5d7a15 Make clearer that git clone examples are examples, fixes #1635 [skip ci][ci skip] (#1639)
41ea15e Use drush launcher and drush8 in container, fixes #1488 (#1638)
92e3513 ddev and drush should use https URL when possible inside and outside container, fixes #1624, fixes #1612 (#1625)
2a5016b Leave the project_tld out of defaults in config.yaml (#1637)
5831404 Change ddev list to default to showing all (#1636)
c70b23d Improve NFS security posture, fixes #1471 (#1616)
e03fbde Fix nfstest.sh to use home dir instead of whole /Users (Test only) (#1630)
cf26e7b Use DNS for name resolution in most cases, fixes #416, fixes #834 (#1611)
e696d17 Minor docs additions (ongoing PR), fixes #1482 [skip ci][ci skip] (#1622)
d3201a6 Track and list stopped/removed projects, fixes #642 (#1600)
a517b1c Router should not blow away existing certificates on startup (#1629)
c793218 Improvements to the memcache compose file (#1585)
2ae2d94 Use sh instead of bash for ddevapp.Exec and ssh on non-ddev containers (#1621)
ae19408 Make sure internet is active before trying operations that might hang, fixes #1601, Fixes #431 (#1607)
04bfc74 Use webimage_extra_packages for PHP module addon example(#1614) [skip ci][ci skip]
b7c5ef6 Fix capitalization error on gitigore webimageExtra dbimageExtra, fixes #1610 (#1615)
325f8f6 MailhogPort and friends should not normally show in config.yaml (#1608)
58e0d97 Create settings.ddev.php on ddev start, fixes #1423 (#1598)
e4cae3c Fix d6/d7 quick start install step [ci skip][skip ci] (#1605)
4c68b1a Fixed order of hostname output, show https first, fixes #1580 (#1599)
04419c6 Allow PHPMyAdmin and Mailhog ports to be changed, fixes #1025 (#1594)
90768a9 Make sanetestbot.sh work with ddev v1.8 (#1604)
5f15785 Fix coding standards of generated Drupal settings, fixes #1582 (#1583)
9c486a4 Update PHP_DEFAULT_VERSION in web container (#1593)
85916d2 Report mkcert err to user (#1596)

Don't miss a new ddev release

NewReleases is sending notifications on new releases.