github ddev/ddev v1.18.0
v1.18.0: Mutagen, docker-compose 2, PHP8.1, MariaDB 10.6

latest releases: v1.23.1, v1.23.0, v1.23.0-rc2...
2 years ago

Installation/Upgrade

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

  • macOS Homebrew and Linux Linuxbrew: brew install drud/ddev/ddev or brew upgrade drud/ddev/ddev ). (You may need a brew update for homebrew to find the new release.). This works on Apple Silicon Homebrew as well.
  • Windows: Use choco upgrade -y ddev to get this one, or download the ddev_windows_installer below.
  • Linux and macOS with the install_ddev.sh script: Download the script, make it executable, and run it: ./install_ddev.sh or curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh
  • 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.
  • In the past, a ddev poweroff was required; now ddev itself detects that you have a new version and asks for permission to do a poweroff.

πŸš› Key changes for v1.18

  • Mutagen support results in a huge speedup for macOS and traditional Windows users. It's an optional feature, but you'll really like it. This huge feature was sponsored by Tag1 Consulting, thanks! Thanks to to Jacob Howard, the maintainer of mutagen, who offered and continues to offer and invaluable support and direction. And of course... for creating Mutagen!
  • docker-compose 2.0 has come along now to where it works adequately for use with DDEV, so now you can use docker-compose v1 or v2 (greater than 2.0-rc2)
  • MariaDB 10.6 is now supported
  • PHP 8.1 is now supported, but not all extensions are yet available (xdebug is one of those, there are a few).
  • ddev list and ddev describe now have much more formatting support and are reorganized. You can change the way they look with ddev config global --table-style=bright (or default or bold). You can turn off this fancy formatting with ddev config global --simple-formatting
  • Improved integration with PhpStorm on all platforms, including WSL2 #3130
    • working_dir is used
    • Relative links are used
  • xhprof support for performance profiling alongside blackfire.io support. xhprof also provides memory usage output, which it didn't in earlier iterations. The xhprof feature was sponsored by Tag1 Consulting, THANKS!
  • The base image for the ddev-webserver is now Debian 11 Bullseye (latest version). This solves some serious problems for macOS M1 users, and of course moves along with Debian, but see the Caveats section as well.

≏ Minor changes

  • bind-all-interfaces is now allowed at the project level. This lets computers on your local network connect directly to the host-exposed ports of the webserver, mailhog, dbserver.
  • omit_containers["ddev-router"] is now possible, for projects that use another reverse proxy or that don't need a reverse proxy at all.
  • host_phpmyadmin_port can be set, but phpmyadmin is not exposed by default (and is not exposed on the host if this is not set)
  • host_mailhog_port can be set to force specific port
  • Numeric usernames and usernames with umlauts now work
  • ddev logs now accepts a project-name argument
  • PHP_IDE_CONFIG is now set everywhere it needs to be, and not set in the context of php-fpm. Improves command-line and other interoperability.
  • expose should be used in docker-compose.*.yaml files (as opposed to ports) wherever an actual port is not needed on localhost.
  • When containers talk to each other, it's best that they use fully-qualified container names and avoid ambiguity inside the docker network. For example, the web container settings now use ddev-<projectname>-db instead of just db as the hostname, even though db still works there. For a web app to talk to a solr container, use the fully-qualified name of the solr container, for example, ddev-<projectname>-solr.
  • ddev checks and warns when the disk space allocated to docker is inadequate
  • mysql client history inside either web or db container will now survive ddev/docker restart
  • The Acquia pull integration is improved so it downloads a compressed database, so it's quite a lot faster with large databases.

⚠️ Caveats

  • Please read the caveats about Mutagen if you're using it. People are loving it, but you need to understand a bit about how it works to understand what's happening.
  • The xhprof_prepend.php has moved to .ddev/xhprof/xhprof_prepend.php. If you have an old one in .ddev/xhprof_preprend.php, delete it or adapt it into the new location.
  • If you were following prerelease versions of v1.18, you might have a .ddev/mutagen.yml. It can be deleted, current configuration is in .ddev/mutagen/mutagen.yml
  • If you have set the PHP_IDE_CONFIG via a docker-compose.*.yaml or in the web_environment section of your project config.yaml please remove that or it will result in a duplicate environment variable error during ddev start.
  • PhpStorm is not yet able to fully parse docker-compose v2 files, so if you're using full PhpStorm integration (detection of php version, etc) you'll want to use docker-compose v1 (docker-compose disable-v2) See #3130 for discussion and issues.
  • docker-compose v1.25 and higher, or v2.0.0-rc.2 or higher are required.
  • The ddev-webserver base image is now Debian 11 Bullseye, which mostly is just the same for most people, but folks with custom Dockerfiles and a few other situations may have to adjust. For example. python2 has been removed in favor of python3. And the exact version of packages you may be installing may have to change. Ask for support if you have any trouble.

πŸ™πŸΌπŸ™πŸΌπŸ™πŸΌ Thanks!

DDEV is very much a mashup of so many wonderful projects.

  • Thanks to so many upstream open-source projects. There's no way to name them all, but of course PHP, Nginx, Apache, MariaDB, and on and on. And Debian, Ubuntu, the Linux kernel and thousands of tools.
  • The mutagen and xhprof features were financially sponsored and promoted by Tag1 Consulting. Wow!
  • Successful mutagen support would not have been possible without loads and loads of coaching and advice from Jacob Howard, the maintainer of Mutagen.
  • All the PHP packages used by DDEV are provided by deb.sury.org. It would be really hard to put it together without that. Sponsor on Github sponsors or lots of other ways.
  • Xdebug support relies on 20 years of faithful support, development, maintenance by derickr. Consider supporting his work. https://github.com/sponsors/derickr
  • xhprof has been around for years, but it has to get love over all that time. Thanks to andypost and the other maintainers that keep it going over time.

Commits since v1.17.7

bb043ac Add topic on PhpStorm integration, fixes #3130 [skip ci] (#3262)
eea7e3d [docs] Add info links and another example to xhprof docs [skip ci]
495ebe2 [docs] Add info about omitting ddev-router [skip ci]
74b5377 Make sure mutagen sync name begins with letter, fixes #3265 (#3266)
0983968 readthedocs: Go back to using published jsmin [skip ci] (#3267)
2c130e6 Pull images earlier to avoid confusion (#3257)
36fd2e7 Stop TestAcquiaPush temporarily as it seems to fail and break upstream (#3264)
9c8137a Mutagen commands should not hard-fail when not enabled, fixes #3269 (#3260)
59062ad [docs] Clarify usage of the "solr path" setting in implementation details (#3261) [skip ci]
e4beb1a Add project type and docroot to describe (#3258)
b8d9344 Bump upstream to PHP8.1-rc1 and xdebug.max_nesting_level=1000 (#3256)
c177e05 [docs] Fix missing info about older Docker Desktop
9700d58 Restore windows symlink scanning and recreation, fixes #3254 (#3255)
1225cae Update ddev-dbserver, router, ssh-agent images for v1.18 release (#3251)
9bee585 [docs only] Remove Drupal 8 Quickstart section [skip ci]
35e9063 [docs] Remove mention of drush.example [skip ci]
0ca78c5 Ensure monitoring is accessible also with basic authentication (#3247)
1574b48 [docs] Simplify WSL2 installation steps (#3246)
59d496b Speed up ddev pull acquia for both database and files (#3209)
81d7d27 Improve table formatting and presentation, fixes #3242 (#3243)
cbfda3a Use stageMode: neighboring, which means moving mutagen volume mount (#3241)
99639ca Fix ddev pull with mutagen enabled, fixes #3237 (#3238)
193ae40 Colors for warning and error and fail were lost, fixes #3233 (#3234)
9229c13 Exclude .DS_Store from mutagen syncing (#3236)
8bae252 pin jsmin to PR #34 (#3235)
d36a392 Remove Apple M1 warnings about SEGFAULT [docs only] [skip ci][ci skip]
d6433b2 Provide TYPO3 and Webserver specific help (#3211) [skip ci][ci skip]
43d544e Update troubleshooting.md docs about port conflicts and ddev-router not found (#3225) [skip ci][ci skip]
9cc8fe4 Remove mention of drush.yml from CMS settings files topic [skip ci][ci skip]
f8447fc Use /tmp for composer create-project operation, preserve .git, fixes #2986, fixes #2422 (#3226)
c195699 Bump mutagen to 0.12.0-beta7 (#3228)
64b57e1 Improve the command-overriding-global-command warning, fixes #3074 (#3227)
73d9888 Fix various bugs in ddev list and ddev describe, fixes #3210, fixes #3215, fixes #3218, fixes #3207 (#3222)
5d0d369 Bump required mutagen version to v0.12.0-beta12 and move RequiredMutagenVersion to version.go (#3224)
7ac928c Terminate mutagen if container not running or sync not working (#3220)
e42eef3 Test Improvements - TestDdevXdebugEnable (#3221)
f478f52 docker compose v2 (compose-cli) updates and fixes (#3083)
d172670 Simplify custom cert removal to get rid of paused container warning (#3217)
bc2bf2b Update & redesign ddev describe output, fixes #2195, fixes #3054, fixes #2190, fixes #2959 (#2965)
5775ebb Add project-name arg to ddev logs, fixes #3203 (#3206)
d2407e8 Bump to latest upstream (ddev-images) php image. Adds PHP 8.1 and php8.0-uploadprogress (#3198)
5237b78 Allow global omit_containers["ddev-router"], add project config to bind_all_interfaces, fixes #3028, fixes #3184 (#3191)
9125552 Minor test cleanups, ignore some conflicts with mutagen on windows (#3204)
005d935 For numeric group names, also try adding user with group id, fixes #3187, fixes #3199 (#3192)
20bd619 Don't use a full path for source of bind mount, for #3130 (#3194)
a326e74 Bump mutagen version to 0.12.0-beta5 (#3201)
5a29850 Force github actions to use actual merge commit in pr build (#3202)
1c06422 Mutagen followups for rc1, fixes #3190 (#3197)
5e5affc Partial updates (volume naming) from docker-compose v2 PR (#3193)
e7ea48a Add vscode help link for launch.json (#3180)
ffa62df Update test_ddev.sh to fix typo on name in comments (#3186) [skip ci][ci skip]
e2bd82d Spiff up TestDdevStartUnmanagedSettings, etc, fix SEGV panic (#3183)
8f6b367 [tests only] Mute some tests on mac M1 to avoid random EOF/connection reset by peer problems (#3182)
832c7a5 Don't write version info into config.yaml (#3181)
69dccdb Mutagen followup tweaks and docs (#3176)
51acbf8 Allow customizing xhprof_prepend.php, fixes #3168 (#3170)
dc202de Debian 11 Bullseye released, nginx packages available, go back to nginx 1.20, fixes #3128 (#3178)
0d81f68 [Tests only] Skip TestGetLocalHTTPResponse on mac m1 - fails always (#3177)
59ff9d6 Remove embargo on TestExtraPackages (#3175)
29a86df [docs] Update pantheon to emphasize that the pantheon.yaml is in project dir [skip ci][ci skip]
8c7e4f4 Attempt to get more info about Windows failures in TestCmdMutagen (#3171)
782c0cc Force restart if mutagen volume did not get mounted (#3167)
a859fc6 [tests only] Simplify and speed up TestAcquiaPush (#3173)
5fb514e Improve mutagen startup status reporting (#3172)
7dede54 Use posix-raw as default symlink mode on macOS in mutagen.yml (#3150)
a5eb4ab Use working_dir in generated compose instead of always overriding, fixes #3158 (#3160)
65b8151 Blackfire packages are currently broken, embargo TestExtraPackages, force image removal (#3169)
f754a0b Use container ID for beta in sync session, fixes #3161 (#3162)
1ccfa37 Fix whitespace issue in troubleshooting.md
1634225 Remove PHP_IDE_CONFIG in php-fpm instead of trying to add it elsewhere, replaces #3143, fixes #2998, fixes #3106 (#3149)
2346ace Add deleting docker images to troubleshooting doc [skip ci][ci skip]
2f9e963 Encourage use of expose instead of ports in docker-compose.*.yaml (#3151)
2004145 Allow use with compose v2 when DDEV_ALLOW_COMPOSE_V2 is true (#3157)
dc44131 Check available space after we've already downloaded webimage (#3165)
ad21835 TestNFSMount fails because of NFS failure on windows, make it more resilient (#3166)
2f0ca90 Mutagen finish work for alpha5 (#3155)
e1c4693 Include memory consumption by default in xhprof output. (#3154)
0795428 Provide more feedback when starting mutagen sync, add ddev yarn and ddev mutagen monitor, fixes #3144 (#3148)
7341245 Add ddev help to support section [skip ci][ci skip]
c4ab14e Ongoing mutagen updates, test improvements, fixes #3139 (#3142)
9af805e [docs] D9 Git repo still requires config to be run (#3141) [skip ci][ci skip]
827df16 Fix #2886: replaces deprecated ioutils package. (#3137)
763e703 Use explicit db hostname, fixes #3065 (#3111)
40e1e4a Mutagen followups, fixes #3135 (#3134)
9c5d134 Make mysql client history survive a ddev restart (#3113)
665ce0e Fix extraneous newline in ddev exec, fixes #3131 (#3133)
1f95a18 Reverse broken backwards minimum disk space warning (#3132)
06ff3e5 Mutagen followup from v1.18.0-alpha1, fixes #3124 (#3125)
7b926c5 Check for adequate disk space in docker, fixes #863 (#3110)
2c2fa8c Fix spellcheck problem (#3127)
d0c0421 Bump required docker-compose to 1.25 (#3099)
7a963c5 [docs] add index.php to command for "simplest possible" [ci skip][skip ci]
b1e6a30 [docs] Windows WSL2 offline usage (windows-side hosts file) [skip ci][ci skip] (#3119)
409002a [docs] Fix typo on laravel quickstart [skip ci][ci skip] (#3123)
2e4fa51 Mutagen.io caching/asynchronous update feature, fixes #3046, fixes #2361 (#3103)
334f76e Use debian bullseye as base image for ddev-webimage, downgrades nginx to 1.18.0, fixes #3116 (#3102) [skip ci][ci skip]
c141572 Remove gitpod badge from PR comments (#3122) [skip ci][ci skip]
070332f Forgot to --rm the docker run for disk space in test_ddev.sh [skip ci][ci skip]
e839306 Add disk space check to test_ddev.sh [skip ci][ci skip]
ed17c31 Fix link to brew.sh in docs (#3104) [skip ci][ci skip]
23f2666 [docs] Add magento setup:upgrade after sampledata [skip ci][ci skip]
b7e1cd5 Improve magento quickstart with specific info about sampledata [skip ci][ci skip]
9b047b2 Do not trim quotes on Example in findDirectivesInScriptCommand (#3051) (#3057)
c71dec1 Use 'drush -r docroot' in acquia provider as acquia seems to require it now (#3100)
57f912c Add required --cleanup-database to setup:install in magento quickstart [skip ci][ci skip]
98e02d6 Add removing proxy settings from docker desktop to troubleshooting docs. [skip ci][ci skip]
9e24dbd fix markdown error in xhprof-profiling.md (#3094) [skip ci][ci skip]
74b5350 Add MariaDB 10.6, solve problems with unsupported 5.5-10.1 versions, fixes #3093 (#3096)
fce3b95 TYPO: TERMINUS_TOKEN instead of PLATFORMSH_CLI_TOKEN in comments [skip ci][ci skip]

Don't miss a new ddev release

NewReleases is sending notifications on new releases.