Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mortenson/drupal-docker-lite
A minimal Drupal docker setup with no bells, or whistles!
https://github.com/mortenson/drupal-docker-lite
Last synced: about 2 months ago
JSON representation
A minimal Drupal docker setup with no bells, or whistles!
- Host: GitHub
- URL: https://github.com/mortenson/drupal-docker-lite
- Owner: mortenson
- License: mit
- Created: 2017-10-05T22:08:24.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-04T18:59:32.000Z (over 6 years ago)
- Last Synced: 2023-10-20T21:53:48.534Z (about 1 year ago)
- Language: Shell
- Homepage:
- Size: 64.5 KB
- Stars: 31
- Watchers: 4
- Forks: 5
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# drupal-docker-lite
A simple Docker setup for lazy developers like me.This project exists because local development in Drupal 8 is just too darn
complicated. I wanted a tool that had minimal dependencies and a single command
that set up everything for me, so I wrote one!If you want a more complicated setup, see [Alternatives](#alternatives).
# System requirements
1. Docker 17.05 or later. This project has admittedly only been tested with
Docker for Mac.
1. Composer, unless you have an existing codebase.# Installation
1. `git clone [email protected]:mortenson/drupal-docker-lite.git your-project`
1. `cd your-project`
1. `./ddl.sh start`That's it!
Feel free to run `./ddl.sh start` whenever you can't remember the address for your
site, or if your Docker containers are down.# ddl.sh commands
Common operations have been abstracted into commands that can be run with
`ddl.sh`. Omitting the instance name for any command will use the local
drupal-docker-lite instance.- `create [DIR]` - Creates a new instance in a given directory.
- `create-lite [DIR]` - Creates a new minimal instance in a given directory.
- `customize` - Customizes instance to use local images for PHP and MySQL.
- `drupal [NAME] [COMMAND]` - Run Drupal Console for a given instance.
- `drush [NAME] [COMMAND]` - Run drush for a given instance.
- `drushlocal [NAME] [COMMAND]` - Run Drush on your host for a given instance.
- `exec [NAME] [COMMAND]` - Executes a single command for a given instance.
- `export [NAME] [DESTINATION]` - Exports a database dump to a given directory.
- `import [NAME] [SOURCE]` - Imports a given database dump.
- `inspect [NAME]` - List all containers for a given instance.
- `list` - List all running drupal-docker-lite instances.
- `logs [NAME] [OPTIONS]` - Print logs for a given instance. Run "docker help logs" for options.
- `mail [NAME]` - Open the Mailhog interface for a given instance.
- `phpunit [NAME] [FILENAME]` - Runs PHPUnit tests contained in the given file.
- `proxy` - Restarts the reverse proxy.
- `prune` - Remove unused Docker volumes and images.
- `rebuild [NAME]` - Rebuilds a given instance.
- `remove [NAME]` - Stop and remove a given instance, permanently.
- `start [NAME]` - Start a given instance.
- `stop [NAME]` - Stop a given instance.
- `update` - Makes sure that drupal-docker-lite is up to date for all instances.
- `url [NAME]` - Print the URL for a given instance.## Making ddl.sh globally available
If you have a lot of local instances, you may want to run ddl from any
directory. To do this, symlink `ddl.sh` to your local bin folder.For example:
```
git clone [email protected]:mortenson/drupal-docker-lite.git ~/drupal-docker-lite
ln -s ~/drupal-docker-lite/ddl.sh /usr/local/bin/ddl
```Now a `ddl` command should be available to you. Run `ddl help` to get started.
# Running PHPUnit tests
PHPUnit tests can be run using the `ddl phpunit` command, ex:
```
ddl phpunit core/modules/field/tests/src/FunctionalJavascript/FormJSAddMoreTest.php
```You can also run PHPUnit manually, if custom flags or debugging is needed:
```
ddl exec ./docroot/vendor/bin/phpunit -c ./docroot/core ./docroot/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
```If you need to run a Javascript test, you can run PhantomJS in one session:
```
ddl exec phantomjs --ssl-protocol=any --ignore-ssl-errors=true ./docroot/vendor/jcalderonzumba/gastonjs/src/Client/main.js 8510 1024 768
```then in another session run the Javascript test.
# Running Simpletest tests
Simpletest tests can be run using the `ddl exec` command, ex:
```
ddl exec php ./docroot/core/scripts/run-tests.sh --php /usr/local/bin/php --class "\Drupal\image\Tests\QuickEditImageControllerTest"
```# Using XDebug
To enable XDebug, uncomment the `xdebug.*` lines from php.ini, then run `ddl.sh rebuild`.
From there you'll need to configure your IDE to listen on port 9000 and accept
external connections, and then debugging should just work.# How does it all work?
Please see [DETAILS](docs/DETAILS.md) for information about this project's
implementation.# Alternatives
There are loads of good Drupal Docker projects out there. Here are some I'm
aware of:1. [Drupal VM](https://github.com/geerlingguy/drupal-vm)
1. [Docksal](https://github.com/docksal/docksal)
1. [docker4drupal](https://github.com/wodby/docker4drupal)