Skip to content

v1.19.0: `ddev get`, Postgresql, Colima

Compare
Choose a tag to compare
@rfay rfay released this 11 Mar 01:12
· 1435 commits to master since this release
5f6ff8f

Highlights

  • ddev get for new supported, maintained recipes for redis, solr, and more.
  • Postgresql support
  • Colima support for an alternative to Docker Desktop on macOS.

Installation/Upgrade

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

  • macOS: brew install drud/ddev/ddev or just brew upgrade drud/ddev/ddev ). (You may need a brew update for homebrew to find the new release.).
  • Traditional Windows: Use choco upgrade -y ddev, or download the ddev_windows_installer below.
  • Linux or WSL2 (macOS works too) use the install_ddev.sh script: Download the script, make it executable, and run it: ./install_ddev.sh or or curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh (If you already had ddev installed with homebrew you'll want to brew unlink ddev first.)
  • 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 or ddev delete images --all after upgrading to free up disk space used by previous docker image versions. This does no harm.

🚛 Key changes

  • ddev get --list automatically shows available add-ons for ddev
  • ddev debug dockercheck and ddev debug test for troubleshooting and reporting.
  • Easier to change $PATH inside container using .bashrc.d
  • ddev exec and and lots of other commands like ddev mysql and ddev drush and ddev php now behave much better with quoted arguments, see #2547.
  • Postgres is now supported (versions 9-14) as well as MariaDB and MySQL. ddev config --database=postgres:14. import-db, export-db, snapshot, and snapshot restore work. (Snapshots don't work with postgres:9).
  • ddev get will now download and install a maintained, supported, and tested recipe for add-ons like services, custom commands and provider integrations, see docs.
  • ddev service enable and ddev service disable now enable and disable add-on services.
  • You can now run ddev without Docker Desktop on both macOS and Windows.
    • Colima support on macOS works great. Note that Colima is a newish 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.
  • When you’re using mutagen (and haven’t modified the .ddev/mutagen/mutagen.yml) ddev does a regular docker mount of your upload_dir (like sites/default/files on Drupal) instead of allowing mutagen to sync it. This means that the docker volume used for mutagen (and mutagen’s cache) use far less of your disk space.
  • A new ddev php command is available to run php with any args you want. It runs php inside the web container.
  • composer_root is now configurable and doesn’t have to be in project root. Thanks to @gilbertsoft!

Minor changes

  • Hook information like "Running ... " for a hook doesn't show by default now. If you want to see it you can export DDEV_DEBUG=true
  • ddev start and ddev import-db now use an absolute value when checking for available disk space, rather than a percentage. This should make things easier for Linux and Windows/WSL2 users.
  • Bundled docker-compose version changes to v2.2.3 to fix a bug.

⚠️ Caveats

  • Most of you who have mutagen enabled on existing projects will want to rm .ddev/mutagen/mutagen.yml and ddev mutagen reset. You don't have to delete the file if the existing one has #ddev-generated in it (hasn't been altered).
  • Users with exotic workarounds to the previous bash-interpreted strings for composer and exec commands will have to simplify them.
  • Alpha testers will have a bad ~/.ddev/commands/web/php that should be removed (and will automatically be replaced)
  • Customized script commands like drush or php won't be replaced by ddev, so you may want to rm them. So for example, if you have a ~/.ddev/commands/web/drush or <project>/.ddev/commands/web/drush that does not have #ddev-generated in it, then you'll want to remove it or update it.
  • ddev no longer pesters about overridden commands (when project has a drush command that overrides the global drush command, for example)
  • 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
  • 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.
  • docker 19.03.9 or higher is now required.

🙏🏼🙏🏼Thanks!

What's Changed

  • highlight the target file by @tyler36 in #3437
  • Use more robust technique to detect Docker Desktop (WSL2), fixes #3441 by @rfay in #3443
  • Remove apt install of mysql-client as it seems to break Ubuntu test runner in Github Actions by @rfay in #3446
  • Make sure .gitattributes gets into commands directory, fixes #3449 by @rfay in #3450
  • Remove unnecessary rules for static content by @gilbertsoft in #3454
  • [docs] Remove sequelpro URL and update database management stuff [skip ci] by @rfay in #3455
  • Optimize Nginx configuration for TYPO3 by @gilbertsoft in #3453
  • [Tests only] Limit how many places TestShareCmd can run by @rfay in #3457
  • Add support for docker context, changes required docker constraint by @rfay in #3452
  • Update go-dockerclient to get runc per security issue by @rfay in #3459
  • Use volumes and copies instead of bind-mounts with db container by @rfay in #3445
  • [tests only] Simplify TestConfigMariaDBVersion and TestConfigMySQLVersion by @rfay in #3462
  • [docs] improve gitpod.io ddev-gitpod-launcher instructions with a bookmarklet by @tyler36 in #3451
  • [tests only] Minor test fix - exclude new links from gitpod bookmarklet by @rfay in #3463
  • Build using golang itself instead of using docker image by @rfay in #3464
  • Update cli-usage.md by @durmazmehmettemax in #3467
  • Bumped spellcheck GitHub action to version 0.20.0 by @jonasbn in #3466
  • Basic Dependabot configuration proposal by @jonasbn in #3473
  • [tests only] Clean up several test directories that grow over time, for #2619 by @rfay in #3474
  • Don't build buildkite/circleci tests on docs pushes by @rfay in #3469
  • Improve TestShareCmd so it doesn't fail so often by @rfay in #3475
  • Support and test Colima as docker environment for ddev, fixes #3208, fixes #3444 by @rfay in #3470
  • Add brew install --head capability to homebrew on release by @rfay in #3476
  • Add docs for Colima, WSL2 docker-inside, Remote Docker, Rancher Desktop, fixes #3419, for #3208 by @rfay in #3477
  • Rework FAQ as definition lists dt/dd with some formatting by @rfay in #3478
  • Fixes DDev WordPress Config Files for Override & Coding Standards, fixes #2795 by @timnolte in #3468
  • Add TestNetworkAmbiguity in preparation for #3403 by @rfay in #3479
  • [docs] Review and improve various CMS quickstart recipes by @rfay in #3485
  • Push mariadb-10.1 to arm64 and amd64 by @rfay in #3483
  • Refactor settings file management into embedded files, Adds drupal10 by @rfay in #3481
  • Fix blackfire-php being enabled by default on hardened/prod ddev-webserver by @rfay in #3486
  • Do nightly build on github instead of circleci, fixes #3013 by @rfay in #3490
  • [tests only] Tests should use updated wordpress 5.6 code by @rfay in #3488
  • [Tests only] Simplify TestDdevXdebugEnabled and TestDdevXhprofEnabled with simpler project by @rfay in #3489
  • Use simple container name as hostname inside docker network (use "db" instead of "ddev--db") by @jonaseberle in #3403
  • [docs] Update Debian verbiage in Docs, omit mentioning specific version by @jameswilson in #3497
  • Debug/improve macos mutagen TestCustomCommands failures by @rfay in #3493
  • Fix dependabot alerts about containerd by @rfay in #3501
  • Bring base-webserver here from ddev-images and set up manual builds, fixes #2617, fixes #3047, fixes #3375 by @rfay in #3491
  • Bump nltk from 3.6.5 to 3.6.6 by @dependabot in #3502
  • Added missing sudo to wsl2 docker install instructions by @chellman in #3503
  • Use gzipped database snapshots, fixes #2114 by @rfay in #3496
  • Add ddev php command, fixes #3439 by @tyler36 in #3498
  • Debug download images with mutagen and docker compose by @shaal in #3472
  • 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
  • Create upload dir when creating settings, fixes #3521 by @rfay in #3523
  • Add build artifacts to PRs with nightly.link [skip ci] by @rfay in #3529
  • Terminate mutagen before chowning volume to avoid conflicts by @rfay in #3528
  • Make sure that rootca is writeable in ddev-global-cache by @rfay in #3527
  • Remove trailing space in configuration by @gilbertsoft in #3531
  • [docs] Add minor details to xdebug troubleshooting by @rfay in #3533
  • Artisan command sometimes isn't executable. Use php to run it. by @rfay in #3532
  • [tests only] Try again to make sure ngrok dies by @rfay in #3538
  • Provide ddev service enable/disable and ddev get commands, fixes #3068 by @rfay in #3516
  • Drupal6 should use mysqli for driver, fixes #3522 by @rfay in #3542
  • Introspect to determine service volumes to delete, fixes #3537 by @rfay in #3543
  • Fix bug where upload_dir is docroot if no upload_dir by @rfay in #3540
  • Rework database type and version configuration to mariadb:10.3 format by @rfay in #3539
  • Remove incorrect usages of ddev service get, fixes #3545 by @rfay in #3546
  • Change renderAppDescribe to use different URLs for each service, fixes #3520 by @rfay in #3544
  • Prevent unconditional overriding config sync directory by @leymannx in #3550
  • Add make mkdocs-serve by @rfay in #3541
  • Prepare ddev directory earlier, fixes #3239 by @gilbertsoft in #3551
  • Bump rojopolis/spellcheck-github-actions from 0.20.0 to 0.21.1 by @dependabot in #3564
  • ✨ bookmarklet support for Gitlabs & Bitbucket repos (corrected) by @tyler36 in #3526
  • Added Discord server by @penyaskito in #3565
  • Add full support for Postgresql, fixes #2187 by @rfay in #3557
  • Remove warning about missing SegmentKey in json mode by @nico-loeber in #3574
  • [docs] update vscode docs to use ${workspaceFolder} instead of ${workspaceRoot} by @andy-blum in #3580
  • Remove duplicate networks key in docs by @webflo in #3581
  • [docs] Fix new things markdownlint wants fixed by @rfay in #3595
  • Command docker context show not available on all docker client versions by @gambry in #3589
  • Support DDEV_GITHUB_TOKEN for github lookups, fixes #3586 by @rfay in #3596
  • Set writable perms on /var/lib/php in ddev-webserver start.sh by @rfay in #3391
  • Remove special handling for gitpod getting host.docker.internal by @rfay in #3597
  • Bump actions/github-script from 5 to 6 by @dependabot in #3601
  • Don't let ddev continue processing if docker context inspect doesn't work, fixes #3548 by @rfay in #3605
  • Improve handling of ddev exec, ddev composer and exec hooks by adding --raw, fixes #2547 by @rfay in #3603
  • [docs] Use --port-interface when starting colima, fixes #3560 by @rfay in #3608
  • [docs] Improve installation instructions, especially for WSL2/Linux by @uberhacker in #3579
  • Fix TestDdevAllDatabases on Windows, fixes #3582 by @rfay in #3616
  • Use php8 for Laravel by @weitzman in #3588
  • Improve web container healthcheck script by @rfay in #3600
  • ddev shouldn't output so much stuff when pulling 3rd party images, fixes #3556 by @rfay in #3614
  • Allow overriding system nodejs version and add nvm support, fixes #2651 by @rfay in #3612
  • Change docker-compose yaml to insert networks stanza, fixes #3587 by @rfay in #3620
  • Support tableplus for postgres projects by @rfay in #3623
  • Fix findAllImages() where project name has hyphen, fixes #3621 by @rfay in #3622
  • Improve healthcheck for db container including postgres, fixes #3617 by @rfay in #3625
  • Adds delete all images command flag, fixes #2968 by @mikebarkas in #3615
  • Use snapshot name exclusively instead of using the snapshot filename, fixes #3570 by @rfay in #3624
  • Don't allow snapshots for postgres:9, fixes #3583 by @rfay in #3630
  • Drupal 10 will require php8.1, use it by default by @rfay in #3633
  • Install GraphicsMagick by default, fixes #3569 by @gilbertsoft in #3629
  • Use .bashrc.d to add to $PATH, fixes #3022 by @rfay in #3634
  • We shouldn't use util.Failed in api method, it exits everything by @rfay in #3635
  • Bump rojopolis/spellcheck-github-actions from 0.21.1 to 0.22.1 by @dependabot in #3637
  • Fix up golangci-lint for v3 after update by @rfay in #3640
  • Add ddev debug dockercheck and use absolute value for disk space, fixes #1443, fixes #3433 by @rfay in #3632
  • Update the docs on the use of DDEV with Compose V2 support in PHPStorm by @nico-loeber in #3631
  • Add ddev get --list so people can discover add-ons, fixes #3552, fixes #3553 by @rfay in #3641
  • Bump image versions for v1.19.0-rc1 by @rfay in #3642
  • The absolute available space value was wrong for checking docker disk space by @rfay in #3646
  • ddev drush should be available for drupal10 by @rfay in #3655
  • Compatibility with docker-compose v1, fixes #3649 by @rfay in #3657
  • Gitpod, docs, minor output changes by @rfay in #3659
  • Make Acquia work again, fixes #3656 by @rfay in #3662
  • Use recent ddev version for gitpod [skip ci] by @rfay in #3661
  • Update containerd in vendor to fix security dependabot by @rfay in #3660
  • Improve ddev nvm persistence and availability, starting with no internet by @rfay in #3664
  • Make tests working from foreign repositories by @gilbertsoft in #3671
  • Switch to GH Forms by @gilbertsoft in #3673
  • Exclude a couple of commonly failing tests (TestDdevStartMultipleHostnames and TestInternalAndExternalAccessToURL) [skip ci] by @rfay in #3674
  • Bump webserver to v1.19.0 by @rfay in #3672
  • Must pull image after calculating them, fixes #3648 by @rfay in #3668
  • Quiet down hook output by @rfay in #3667
  • Update ddev list and ddev describe to try to not break URLs by @rfay in #3669
  • Bump actions/checkout from 2 to 3 by @dependabot in #3676
  • Pull the fundamental images we need earlier in Start() by @rfay in #3678
  • v1.19.0 docs updates, version history, etc. by @rfay in #3675
  • Fix piles of dead containers from the docker build process by @rfay in #3677
  • Make composer root directory configurable, fixes #1699 by @gilbertsoft in #3654
  • Make hardened images work and provide test by @rfay in #3680
  • v1.19.0 release prep final steps by @rfay in #3684
  • Add FUNDING.yml and sponsor acknowledgments [skip ci] by @rfay in #3685

New Contributors

Full Changelog: v1.18.2...v1.19.0