v1.8.0: Trusted SSL, Extra Packages, SO MANY GOODIES
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
- macOS Homebrew and Linux Linuxbrew:
brew upgrade ddev
- Linux or macOS via script:
curl https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh | bash
- Windows: Download the ddev_windows_installer.v1.8.0.exe below or with Chocolatey
choco install ddev
orchoco upgrade ddev
(orchoco install ddev --version=1.8.0
while it's in the approval process.)
And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs. - For this release (all versions) you'll want to do
mkcert -install
; Watch what it says to you. You may have a little extra work to do on Linux - You'll want to do a
ddev config
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. - Please see the "Incompatibilities and Things to Upgrade" section below. You'll want to update config.yaml hooks that use
bash -c
, and if using custom nginx configuration will want to update your nginx config (but it's easier now!)
Key changes in v1.8.0:
- Browsers and host OSs now trust ddev sites over https. You do have to take the one-time action to install the CA keys into your operating system and browsers:
mkcert -install
. If you use one of the package installation methods or the WIndows installer, you should already have mkcert. Otherwise, see the mkcert page for installation options. (Even curl and operating system tools generally trust the mkcert certs, and curl within the container also trusts them.) - Dynamic container updates: If you need extra Debian packages in your web or db container (or need to make more sophisticated adjustments) you no longer have to wait for them, or install them every time you start a project. You can add
webimage_extra_packages
to your config.yaml or build a free-form Dockerfile (Dockerfile.example provided in your .ddev folder) - The "stop" and "remove" commands have been changed a bit.
ddev stop
now does whatddev remove
used to do. It removes the containers and saves resources on your host.ddev remove
is still available as an alias ofddev stop
. Andddev pause
takes the place of the formerddev stop
- it just does a "docker stop" on the project containers and leaves them in zombie state. This is the workflow we've promoted for some time, as we've been suggesting that people use "remove" in general, but now it's just named "stop". - nginx configuration in the web container has been reorganized and simplified. This mostly won't matter to you unless you use custom nginx configuration, in which case you'll want to upgrade your configuration (see below). docs
ddev exec
and exec hooks now interpret commands using bash. This means you can have a hook like "sudo apt-get update && sudo apt-get install -y some-package" without putting "bash -c" in front of it. And you canddev exec "sudo apt-get update && sudo apt-get upgrade -y some-package"
as well, no bash -c required.ddev exec
can now work with interactive situations. So for example, you canddev exec mysql
and interact with the mysql program directly. Orddev exec bash
, which is the same asddev ssh
.
Smaller changes
- There is now an exposed https port on localhost (not going through the router). It is reported on
ddev start
and viaddev describe
. (As with the http port, the https localhost port can be locked down in the config.yaml, but most people won't need to do this. See the .ddev/config.yaml for instructions.) - Since https is preferred everywhere now, the reported URLs are now https-first, http second.
- The composer cache has moved from a volume named "ddev-composer-cache" to a new volume named "ddev-global-cache". If you want to, you can
docker volume rm ddev-composer-cache
. - blackfire.io and php-pgsql packages was added to web container. If you were previously adding them with a post-start hook, you don't have to do that any more..
- Windows users will be warned when they have more than 10 sites/hostnames represented in the hosts file, since WIndows stops resolving over 10 hostnames.
- The webcache feature is officially deprecated and is no longer getting automated test coverage, but no date has been set to remove it. Maybe it will just live on until there's something to compete with it for automated testing speed. (docs)
- New flag
ddev --version
gets just the ddev version without all the details inddev version
- Multiple hostname resolution in web container: There was a long-term bug (#1235) where you couldn't use curl against the hostname if additional_hostnames or additional_fqdns were enabled, that's fixed.
- drush once again works on the host (macOS and Linux). It was broken on v1.7.1 because the ddev_drush_settings.php got dropped into the wrong place when generated.
- nginx in the web container no longer intercepts and reports 40x errors, they'll be handled by the PHP application.
ddev config
no longer searches for and uses a .ddev/config.yaml in a parent directory (although it does warn if it finds one). This led to people accidentally using unintentially created config files in non-project parent directories, including the home directory. Runningddev config
in home directory is now disallowed.ddev composer create --no-interaction
passes the --no-interaction file to composer, but no longer will continue without asking for confirmation before destroying the project directory; confirmation is required.
Incompatibilities and things to fix during upgrade
- The base nginx configuration has changed. If you are overriding configuration with an nginx-site.conf file, you'll want to re-do it (it's much easier now). In addition, small pieces of nginx configuration can now be added in the .ddev/nginx directory. See the docs for more information.
- config.yaml "exec" hooks are now executed with bash context by default. If you have exec hooks that have "bash -c" in them, please remove that, as they can't be interpreted correctly by the new execution mechanism.
- If you or your team used to use
ddev stop
instead ofddev remove
, the new behavior of "stop" may seem different, but it hopefully won't affect most people. However, if you have an add-on docker-compose.*.yaml service that has volatile storage, you may want to change it to save its database on a volume, asddev stop
now completely brings down the containers, and if they had volatile content, it will be gone. - If you use drush in exec hooks, and the action you take requires confirmation, please change the exec hook to use
drush --yes
. Formerly, --yes was implied by exec hooks andddev exec
, but it isn't any more.
Thanks!
Many community members helped out with this release.
- @damienmckenna , @wizonesolutions , and @mglaman among others worked to significantly improve the Apache Solr docs and example docker-compose.solr.yaml, and added a docker volume so the solr database would be nonvolatile after
ddev stop
. - @AronNovak created the PR to have the ddev-webserver nginx configuration not intercept 40x errors.
- @yanniboi and @isholgueras were kind enough to catch and PR docs errors.
- @dacostafilipe introduced a PR adding pgsql libraries
- @jonaseverle and @hebbet helped test the release
- Thanks to all of you for the issues you created, bugs you pointed out, features you requested, support you gave in Slack and elsewhere, and for your support of ddev!
And the amazing mkcert from @FiloSottile made the seemingly impossible task of trusted local development certificates possible. Thanks! Is open source great or what?
Commits since v1.7.1
e85d60c Fix typo in description, change completion to 'has been stopped' (#1590)
4038b54 Improve mkcert docs for linux [skip ci][ci skip] (#1591)
f928dcb Improve wordpress quickstart with ddev config [skip ci][ci skip] (#1592)
689ea9e Re-use the v1.8.0 tag even though small change was made in web container (#1589)
421efeb Remove --yes drush behavior when in ddev exec behavior, fixes #1584 (#1586)
16f109e Revert parent config search, prevent directory destruction, hopefully fixes #1574 (#1576)
9b6fcad Bump container versions to v1.8.0 (#1581)
96e78d8 Interpret ddev exec and hooks with bash, fixes #1023 (#1570)
a41256c Warn windows users when hosts file has too many entries on a line, fixes #948 (#1575)
24e1d8d Further improved Solr install docs. (#1568)
07ac366 Add quickstart for PHP project [skip ci][ci skip] (#1573)
f3c9b0d ddev exec command should allow tty interactions (#1571)
2bf13b9 Use StartAndWaitForSync to accomodate docker toolbox slowness (#1572)
70917c6 Use docker-compose build for dynamic containers, allow easier container config (#1560)
81c4b2e ddev-webserver Nginx - do not intercept 400 errors (#1555)
7e9b172 Fix mark down format for hook examples. (#1565)
980cb5c Use sudo to copy mysql config files, fixes #1541 (#1563)
41e9954 apache-cgi should respect php overrides, fixes #1556 (#1557)
baef9b2 Test improvements for Win 10 Docker Toolbox (#1561)
dc340c9 Use restart: no on additional service examples (#1559)
49f3b50 Add blackfire.io to web container, fixes #653 (#1545)
e484c99 Improved Solr install docs, update to 6.6 (#1549)
761938f Use docker volume in sample apachesolr config (#1538)
7b2fbab SetSiteSettingsPaths() has to be set after we've read the config, fixes #1553 (#1554)
97c660a Trust SSL/TLS Certificates, fixes #1247, fixes #1501, fixes #849 (#1540)
be8505e Fix CaptureLogs to just capture stdout (#1550)
5940cdb Add separate lines for each external_links, fixes #1235 (#1546)
a2d191e Change PHP typo when it should be MySQL (#1532) [skip ci][ci skip]
beab35d Improve docs with DEBIAN_FRONTEND=noninteractive in apt-get examples [skip ci][ci skip] (#1543)
899386b More robust handling of ddev stop -RO, remove from global list, fixes #1523 (#1531)
44f2c24 Rename stop-containers to pause, so ddev pause, follow up to #1526 (#1537)
9388534 Reorganize stop and remove commands (use stop), fixes #484 (#1526)
e64019e Improve "ddev version" and add --version flag, fixes #960 (#1527)
34c84c7 Deprecate webcache_enabled, fixes #1495 (#1530)
573fb00 Generate homebrew bottles for Linux and macOS for #1516 (#1524)
a938096 Use CircleCI's new Ubuntu 16.04 machine image (#1513)
60e0d25 Minor release docs improvements (#1525)
0a70f46 Add wordpress composer recipe, simplify others, [skip ci][ci skip] (#1519)
21dbe0e Minor improvements to mariadb binlog management (#1515)
ce86166 Add missing php-pgsql packages to ddev-webserver container (#1514)
8b06e0f Add fileinfo to required php extensions in docs [skip ci] [ci skip] (#1512)