github ddev/ddev v1.15.0
v1.15.0: Laravel, Global commands, WSL2, nginx/apache config, zsh completions, MariaDB 10.5

latest releases: v1.23.0, v1.23.0-rc2, v1.23.0-rc1...
3 years ago

v1.15.0 adds loads of goodies and bug fixes. Laravel now has first-class support, Windows WSL2 support, Nginx and Apache configurations that are more accessible, and loads more.

Installation/Upgrade

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

  • Please stop all projects first, this does no harm: ddev poweroff
  • If you have custom configuration, especially pinned image specifications in your .ddev/config.yaml, please remove it for now.
  • macOS Homebrew and Linux Linuxbrew: brew tap drud/ddev && brew install ddev or just brew upgrade ddev ). (You may need a brew update for homebrew to find the new release.)
  • Windows: Use choco upgrade -y ddev , or download the ddev_windows_installer below. Note that the Windows installer is not needed or used for WSL2 installs.
  • And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs.

Key Features of v1.15.0

  • Laravel support! Thanks @NBZ4live ! You can now ddev config --project-type=laravel, see Laravel quickstart
  • Docker using WSL2 and within WSL2 is now the preferred Windows setup, although Docker with WSL2 still supports the traditional Windows build on the Windows side.
  • Explicit support for WSL2, with installation documentation added, see https://ddev.readthedocs.io/en/stable/
  • Completely reworked Nginx and Apache configurations, with improved base configurations. See the nginx and apache docs.
  • Multiple site docroot configs for Nginx and apache, with examples.
  • Global custom commands. Custom commands can now be placed in ~/.ddev/commands so that they don't have to be introduced in every project. See docs
  • Global homeadditions. You can now add files globally (in ~/.ddev/homeadditions) that will end up in your home directory inside the web container. See docs
  • zsh, oh-my-zsh, fish, and PowerShell completions, see docs
  • Integration with DDEV-Live hosting. See ddev-live integration docs for instructions to use ddev config ddev-live and ddev pull It also includes the "live" command, so one can use ddev live ...
  • The ddev-live client is included inside the web container, which means that you can use it there at any time and on any platform, including Windows.
  • MariaDB 10.5 support

Smaller changes

  • ddev automatically sets the PHP_IDE_CONFIG environment variable inside the web container, so if you're debugging command-line PHP scripts like drush, you don't have to set that yourself any more.
  • Drush configuration for Drupal 8+ is now provided via DRUSH_OPTIONS_URI instead of via drush/drush.yml (Please remove any old ddev-generated /drush/drush.yml files).
  • Improved handling when someone renames an existing project in place; this used to create a bit of a mess with two projects apparently having the same name and one difficult to remove.
  • Output from hooks is streamed as it occurs, instead of being batched up until each command completes. One can even interact with hooks that require input.
  • Improved zsh and fish installation in homebrew installs.
  • ddev exec will now find binaries/scripts in /var/www/html/vendor/bin, thanks @atomicptr !
  • ddev-webserver is marching toward using the same basic docker images as DDEV-Live uses
  • ddev import-db will now ignore any USE <database> or CREATE DATABASE <database> statements in your imported database dump. For most people and most situations this is just fine, and database dumps should really never have those statements in them.
  • ddev tests for an internet connection before taking some actions, so it can create a hostname in /etc/hosts where required, etc. The timeout is now configurable in ~/.ddev/global_config.yaml for the rare case where it needs to be increased.
  • The default mysql collation changes to utf8mb4_general_ci
  • The ddev-webserver docker image is down in size from 577MB to 418MB, 72% of its previous size, without losing any features.
  • Bugfixes

Caveats

  • If you work on Drupal 8+ and have a ddev-generated /drush/drush.yml, please delete it. It can only confuse things now. ddev now provides the DRUSH_URI_OPTS environment variable instead of using /drush/drush.yml
  • The use of an alternate nginx configuration in .ddev/nginx-site.conf is no more. It should now go into .ddev/nginx_full/nginx-site.conf. ddev start warns about this and asks you to move it. You'll need to change $WEBSERVER_DOCROOT to the absolute path to your docroot.
  • ddev import-db will now ignore any USE <database> or CREATE DATABASE <database> statements.
  • ddev exec and exec hooks now check for errors and pipe failures by adding a set -eu -o pipefail onto the front of bash statements. It is possible that this will make exec hooks or ddev exec commands fail that should always have failed.
  • The environment variable $WEBSERVER_DOCROOT has been removed from the web container runtime environment. If you were using this, you scripts may break. Please use "/var/www/html" instead.

Deprecation warnings

  • Support for Docker Toolbox on Windows will be removed in ddev v1.16, a warning will start to be given in v1.15
  • Support for the apache-cgi webserver_type will be removed in ddev v1.16; a warning will be given on ddev start in v1.15.
  • Nginx "snippets" - small stanzas from .ddev/nginx are deprecated. They were too limited in use. They're still supported in this release, but will be removed in v1.16.

Commits since v1.14.2

3814e4b Documentation update for v1.15 release, fixes #2329, for #1934 (#2360)
365b139 Work around WSL2 docker flaw with incorrect mount ownership - affects ddev-live pull (#2364)
c8cfaac Bump image versions for v1.15.0 release (#2358)
139944c Don't try to start export-db or docker-compose output will end up in output (#2356)
86d8e9f remove extra spaces in generated files (config.yaml, docker-compose templates) (#2355)
e111cd7 Change comment at top of magento nginx configs, improve tests (#2353)
9bb78d5 Don't use root privileges when writing files #2349 (#2350)
37118f4 Improve ddev-live integration with initial files backup, fixes #2348 (#2351)
ec3820b Make internet connection timeout configurable in global_config.yaml, fixes #2302 (#2339)
49c4a20 Add WSL2 installation docs, fixes #2320 (#2321)
bc2173b Bump all images built with no cache to v1.15-rc1 (#2340)
1cf6054 Improve util.Failed() handling and export-db, fixes #2281 (#2337)
6a74230 Hook output streamed as it occurs, fixes #2214 (#2335)
0da00cb Improve handling of duplicate project in same directory, closes #1933 (#2331)
ae4c30e Add environment variables to web container that got lost in reorg (#2336)
d6e4dae Increase timeout on create_base_db to avoid transient windows test failures (#2333)
b75cc1e Packr2 change that landed somewhere (#2327)
7c866fa Put zsh completions in correct place in homebrew bottle, fixes #2317 (#2326)
0c5a034 Updated docs for CLI debugging with drush (#2318)
31b4523 Add apache second docroot example, fixes #2323 (#2324)
8004dc7 Fix markdownlint linting problem (#2325)
e249a89 Copy global homeadditions into web container, fixes #2055 (#2310)
9680a4f Update Magento 1 Quickstart section to use OpenMage (#2289) [ci skip][skip ci]
18153b2 Add global custom commands, fixes #2054 (#2309)
9eb1145 Image maintenance and deprecation warnings, for #2284 and #2286 (#2316)
3976b94 Generate nginx/apache configs on host and mount into container, fixes #2263, fixes #2084, fixes #1889, fixes #1957 (#2305)
f72957d Fix the latest launch problem in 2256, fixes #2256 (#2304)
c60d21d Use DRUSH_OPTIONS_URI instead of drush.yml creation, fixes #2216, fixes #2141 (#2303)
1d64b85 Automate releases to Homebrew, Chocolatey, and AUR, fixes #2213 (#2301)
93b4008 Improve buildkite-agent setup instructions for Windows (docs only) (#2299)
b266ed6 Make sure that Exec() runs commands with bash error checking, especially pipefail (#2295)
6d8df73 Restore custom "live" command (#2296)
0dab776 Fix broken links on Extending and Customizing (#2298)
53a9ef1 Improve instructions for running macos_ddev_nfs_setup.sh (docs) (#2292) [skip ci][ci skip]
5806555 Update Drupal 8 quickstart [skip ci][ci skip] (#2294)
18c38f7 Rework ddev-webserver to base on ddev-images PHP version (#2290)
5be3993 Migrate ddev webserver tests from ddev images (#2287)
ebd00b2 Adds ddev-live as a default custom command (#2282)
ef23672 Add explicit Laravel support and project type (#2249)
e5bfb63 Support zsh, fish, and Powershell autocompletion, fixes #327 (#2234)
f2e54e4 fix(nginx): Remove duplicated image location in Drupal 7 nginx config (#2242)
3e8b1c9 Use BASH_ENV to add composer bin directory to PATH for ddev exec (#2258)
43b2e9c Encourage people to use Linefeeds in commands, fixes #2126 (#2236)
fa99600 Increase timeout on ddev-router and ddev-webserver for slower machines, fixes #2120 (#2123)
ddfd8d3 Improve examples and help in several commands (#2277)
9b7a1cf Fix omit_containers example (#2279) [skip ci][ci skip]
cbc200d DDEV-Live integration for pull, fixes #2259 (#2271)
a277a66 Add mariadb 10.5 support, fixes #2229 (#2230)
62f82b8 Set provider in app after config read, fixes #2243 (#2274)
447c2b7 Change default mysql collation to utf8mb4_general_ci (#2223)
6f3f0fc Handle numeric 3rd party service use of HTTP_EXPOSE or HTTPS_EXPOSE (#2252)
35ae7b4 Increase the upload limit for PHPMyAdmin (#2269) [skip ci][ci skip]
98ca10b Update link to Docker Desktop (#2270) [skip ci][ci skip]
8c9f37a Improve error message when ddev auth pantheon has not been run, fixes #2241 (#2272)
e02a377 Improve developer build instructions [skip ci][ci skip] (#2264)
7d6ed50 Check for docker on ddev config, fixes #2222 (#2235)
3e99c24 make staticrequired shouldn't require all kinds of local installs, fixes #2253 (#2254)
cdbf263 Update version of mkcert, specified in Makefile (#2255)
94cc5d4 Change the context we're using since it's now specific to ddev-local (#2260)
a4ab282 Skip tests that are too difficult for Windows Docker (#2261)
f6e43e0 Fix up ddev-dbserver tests to work with docker 2.3.0.1+ - tests only (#2250)

Don't miss a new ddev release

NewReleases is sending notifications on new releases.