A Drop-in Docker environment for Drupal module testing
Dropwhale is a drop-in Docker environment aimed at Drupal module developers. Instead of maintaining a separate Drupal installation, Dropwhale does all the downloading and initialization of Drupal with a few easy commands. No need for you to download and install core. No need to argue with xdebug or get Drush installed. It's all built in!
- Download Dropwhale and copy the following files to the root of your module repository:
- The .dropwhale/ directory
- You can choose to commit the directory to your module repository, or gitignore it. Dropwhale doesn't care.
- Rename dropwhale.settings.examples to dropwhale.settings.
- Edit dropwhale.settings, replace your_module_name with your module machine name.
- Make any other changes to dropwhale.settings, if desired.
- cd to the root of your module repository. Execute .dropwhale/start.sh
If you need to rebuild from a clean version of Drupal, run .dropwhale/reset.sh
Dropwhale is licensed under the GPLv3.
- Set Drush to 9.0.0-beta4 due to breakage in beta5.
- Fixed longstanding testing issues with permissions!
- Re-enabled Drupal console now that it's stable.
- Updated and fixed phpcs to run coding standard tests.
- Switched to the apache user for shell environment, updated permissions.
- Switched to Ansible to build container.
- Switched to Drush 9.x.
- Configured phpunit.xml.
- Internal improvements.
- Switched TEN7/Dockstack as a base.
- Included phpMyAdmin and Mailhog for DB access and email debugging.
- phpunit.php now will run your module's tests when no parameters are given.
- Ansible was added to the web container to power builds.
- New containers based on Alpine Linux for a smaller download size.
- build.sh renamed to reset.sh for better clarity.
- Settings moved from Docker override file to dropwhale.settings.
- start.sh will now display an error if dropwhale.settings isn't found.
- New MODULE_NAME setting and ADDITIONAL_MODULES settings.
- run-tests.php now will run your module's tests when no parameters are given.
- The parent directory is now mounted at /module, and symlinked into drupal/modules when built.
- delete.sh now asks with a more friendly message before deleting.
- nuke.sh now deletes volumes too.
- Various fixes
- Added phpcs.sh script.
- Use DRUPAL_USER and DRUPAL_PASSWORD to set login credentials.
- Switched to socketwench/drupal-base:8-xdebug and socketwench/drupal-cli.
- Moved docker-compose.*.yml files into root directory.
- Removed hardcoded 8.0.x branch pull in init.sh, now pulls from default branch.
- Added composer install to init.sh.
- Commented helper scripts for MOAR HACKABILITY.
- Added run-tests.sh script so you never have to log in.
- Updated helper scripts to preserve working directory.
- Switched to more standardized containers to speed build process.
- PHP 7 with OpCache.
- Added missing php.ini to web container.
- Added helper scripts for PHPUnit testing and nuking docker.
- XDebug Support!