So I attended NWDUG unconference this weekend with team Digidrop. During this there was a talk about Docker, now I’ve always been sceptical about Docker as I’ve had many issues and not much time to fix any issues I encounter, so I thought this session by Richard Sheppard would be ideal.
Richard explained about a docker tool called ddev (https://github.com/drud/ddev) which having tried many other types of docker tools I again was sceptical. However when it was explained it was as easy as 3 steps I was intrigued:
- Clone your repo or run composer for your site
- Using homebrew install ddev
- Run ddev config and ddev start
The process is as such:
Download ddev using homebrew
brew tap drud/ddev && brew install ddevbrew upgrade ddev
composer create-project drupal-composer/drupal-project:8.x-dev my-drupal8-site --stability dev --no-interaction cd my-drupal8-site
Configure and run
➜ my-drupal8-site ddev config
Creating a new ddev project config in the current directory (/Users/alexburrows/Sites/docker-play/my-drupal8-site)
Once completed, your configuration will be written to /Users/alexburrows/Sites/docker-play/my-drupal8-site/.ddev/config.yamlProject name (my-drupal8-site):The docroot is the directory from which your site is served. This is a relative path from your application root (/Users/alexburrows/Sites/docker-play/my-drupal8-site)
You may leave this value blank if your site files are in the application root
Docroot Location: web
Found a drupal8 codebase at /Users/alexburrows/Sites/docker-play/my-drupal8-site/web
Configuration complete. You may now run 'ddev start'.
➜ my-drupal8-site ddev start
Starting environment for my-drupal8-site...
Starting ddev-my-drupal8-site-db ...
Starting ddev-my-drupal8-site-db ... done
Starting ddev-my-drupal8-site-dba ...
Starting ddev-my-drupal8-site-web ...
Starting ddev-my-drupal8-site-web ... done
Creating ddev-router ...
Creating ddev-router ... done
Starting service health checks...
Successfully started my-drupal8-site
Your application can be reached at: http://my-drupal8-site.ddev.local
Now any developer loves getting a local environment setup this quick, so it was a no brainer to use it. Once my environment was up and running I went through the installation process of Drupal.
The DB settings are:
DB name: db
Then voila you are installed and setup.
Now looking inside the container, using: ddev ssh
You can see that the container uses the following by default:
root@c44ca233a8ff:/var/www/html/web# php -v
PHP 7.1.10-1+0~20170929170631.9+jessie~1.gbp501135 (cli) (built: Sep 29 2017 17:33:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.10-1+0~20170929170631.9+jessie~1.gbp501135, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
I’m still playing about with DDev, and the next step is to see if I can get Xdebug working with it, although from looking from the project issue queue it looks as if port 11011 is suppose to work, and running the following:
sudo ifconfig lo0 alias 172.28.99.99
So fingers crossed with some more tinkering I can get this working.
Adding extensions to DDEV
After speaking with Randy Fay and Rick Manelius about this (Drud team — https://drud.com) they suggested simply editing .ddev/config.yaml and adding the following to the end.
— exec: “apt-get update && apt-get install php7.2-bcmath”