Skip to content

v1.10.0: Custom commands, `ddev poweroff`, nicer in-container environment

Compare
Choose a tag to compare
@rfay rfay released this 02 Aug 12:58
· 2579 commits to master since this release
5105f1b

Installation/Upgrade

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

  • Please stop all projects first, this does no harm: ddev stop --all --stop-ssh-agent
  • 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 install drud/ddev/ddev or just brew upgrade ddev). (It also shows up in the ddev-edge homebrew channel.).
  • 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

  • Please avoid upgrading to macOS Catalina, as mkcert is not ready for it.
  • This version of ddev bundles the latest PHP7.2 and 7.3 versions (7.2.20 and 7.3.7). There have been some reports of Symfony/Doctrine incompatibilities/bugs with those versions. (link)
  • ddev import-db no longer automatically drops the entire "db" database before importing, see below.

Key changes in v1.10.0

  • Custom commands! You can now create custom ddev commands using a simple bash script. See the docs for how to do it.
  • There's a real user created for you inside the web and db containers, with your username and userid. And the containers have an explanatory hostname, like <projectname>-web. Those of you who use ddev ssh and ddev exec.
  • The first official bash custom command is the mysql command, so you can now ddev mysql to work directly with the mysql client in the db container, and you can pipe into it, etc.
  • ddev now has a "poweroff" command. ddev poweroff is quick way to stop all ddev containers. It's the same as ddev stop -a --stop-ssh-agent but a lot easier to remember. A tip of the hat to our friends at lando.
  • You can now add files to the web container's home directory by adding them to .ddev/homeadditions, so files like ~/.gitconfig and ~/.ssh/config can be added, or bash aliases, etc. See docs.

Smaller changes in v1.10.0

  • ddev ssh now uses a bash login shell, meaning that .profile will run as most people would expect.
  • The ddev binaries on macOS and Windows are now signed.
  • Better URL presentation in ddev start and ddev describe (and describe gives more information)
  • ddev restart proj1 proj2 and ddev restart -a now work
  • ddev ssh <project> now works
  • Improved timezone documentation in both config.yaml and ddev.readthedocs.io
  • Example custom commands for ddev mysqldump and ddev mysqladmin
  • ddev import-db now accepts stdin, so you can gzip -dc yourfile.sql.gz | ddev import-db to load a database. Of course, you can also do that with the new ddev mysql command.
  • ddev exec is now happy to accept input from stdin.Thanks @dasjoe!
  • PHPMyAdmin and web ports are no longer shared with the local network. This was a bit of a security risk. If you were allowing your coworkers to access your project across the network and depended on this, try ddev share. Or you can override the settings with a docker-compose.letthemin.yaml
  • Healthcheck improvements should improve battery life and CPU usage. A fair number of people had noticed that all the containers were waking up every few seconds for no particular reason. Now the healthcheck is every minute or so.
  • ddev import-db no longer automatically drops all tables in the database. Instead, your dumpfile should empty tables as necessary (or you can use another technique like ddev exec drush sql-drop -y or DROP DATABASE db; CREATE DATABASE db; in ddev mysql or ddev exec mysql).
  • bash history is now persistent inside the container. It's nice to find all your past commands still there.

Thanks!

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

  • @klonos kept the Backdrop drush extensions up-to-date, thanks!
  • @dasjoe updated ddev exec to make it properly accept input from stdin.
  • @jonaseberle did a major ddev PR to make TYPO3 installation with https work correctly... after doing a PR to make TYPO3 work right in the same situation!

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

Commits since v1.9.1

02b016b Make sure that DDEV_HOST_DB_PORT is properly set where needed, fixes #1747 (#1754)
0507462 Fix artifacts script to use correct path to execute ddev, fixes #1749 (#1752)
a307434 Fix release trigger script, fixes #1750 (#1751)
0e4527c Docker Desktop 2.1.0.0 (19.03.1) doesn't let you install as root (#1748)
ab3de84 Take correct action on custom commands if project not running, fixes #1716 (#1744)
98cb2a2 Move Segment items into Context, better instrumentation_user, fixes #1726 (#1745)
8592d4d Bump image versions to v1.10 (#1746)
0fa6264 Add ddev delete command to kill projects and images, fixes #1465, fixes #1562, fixes #1464 (#1743)
2ad94a0 Get rid of TYPO3 trustedHostsPattern warning, fixes #1739 (#1741)
2948e7e Make sure EOL at end of file is there in config.yaml, fixes #1740 (#1742)
6b76de8 Allow home directory additions in web container, fixes #926, fixes #1459 (#1728)
669e3fd Update typo3 quickstart with warning about https url [skip ci][ci skip] (#1732)
f70c82a TYPO3 AdditionalConfiguration.php: fix warning in array_merge() (#1735)
17b3d2b Add ddev poweroff command, fixes #1588 (#1733)
21b4cd0 Make ddev ssh use a bash login shell (#1730)
71fc560 Remove Sentry 'Usage' sends (#1729)
40c3144 Remove verbiage about default docker images [skip ci][ci skip] (docs only) (#1725)
6665fe7 Allow signed releases for macOS and Windows, fixes #1626 (#1727)
2148548 Improve URL presentation in start/restart/describe, fixes #1711, fixes #1685 (#1720)
663194b Only output segment/sentry info when DRUD_DEBUG=true, fixes #1684 (#1724)
babcf36 Use ddev fork of nssm to download exe file (#1723)
a54202f Add target app arguments to ddev restart and ddev ssh (#1719)
b266721 Timezone docs in config.yaml and add config docs to documentation, fixes #1691 (#1721)
fdab57d Add optional real username for instrumentation (#1722)
aabfe94 Add mysqldump example command (#1718)
7a028d0 Use testdata with longer timeouts on dockerutil tests (#1717)
6146cfa Add TYPO3 GFX configuration for ImageMagick, fixes #1720 (#1712)
478da82 Custom host and in-container commands, fixes #1372, fixes #1551 (#1702)
27b8fc1 Update drush for Backdrop to 1.0.0, fixes #1693 (#1694)
52c7915 Make ddev import-db accept stdin, fixes #1690 (#1704)
5124666 Reorganize web and db containers to have real user and hostname, persistent bash history, for #926 (#1688)
e8ec25f Add segment to instrumentation, fixes #1640, fixes #1344 (#1696)
93ea28d [FIX] Use Stdin for tty detection, fixes #1690 (#1700)
456994f Bind router functions only on docker interface (usually localhost), fixes #1662 (#1698)
ac4710d Stop reporting last status from ddev ssh, fixes #1681 (#1697)
527519b Update drush for Backdrop to 0.2.1, fixes #1686 (#1687)
a2b82a6 Quiet down healthchecks to save battery and CPU usage, fixes #1663 (#1674)
53fb9c0 Minor fixes to tests and documentation (#1679)
8c8a2de Improve handling of linux case where docker0 is down (#1671)
089eb3d Pre-enable common apache modules, fixes #1672 (#1675)