# LakeDropsDrupalDev - L3D

Provides fully configured Docker images for local Drupal development where your local host requires nothing else than Docker being installed but no PHP, Composer or any other tool on this planet. It simply works.

## Prerequisites

Nothing else than docker and this [script](https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d) being installed on your host. You don't need any other tool - none!

Ideally you download that script and copy that to a directory in your search path (e.g. `/usr/local/bin`), then it will be available for all your Drupal projects.

You can execute the following commands:

```bash
sudo wget -O /usr/local/bin/l3d https://gitlab.lakedrops.com/docker/l3d/raw/master/l3d
sudo chmod +x /usr/local/bin/l3d
```

## Quick start

Go to the project root for which you want to use **L3D** and execute the downloaded script (simply type `l3d` at the command prompt). It will ask you for the PHP version to be used (input `7.0`, `7.1` or `7.2`) and it will download the matching L3D image and start a container for you.

## Usage

Inside the container you'll find the directory `/drupal` which contains everything from your project's root. You can work from there by using these available tools:

| Tool | Command | Shortcut |
| --- | --- | --- |
| Ahoy | `ahoy` | `a` |
| Composer | `composer` | `c` |
| Docker | `docker` | |
| Docker Composer | `docker-compose` | `d-c` |
| DorgFlow | `dorgflow` | |
| Drush | `drush` | `d` |

## Update the image

When starting **L3D** with the script this will simply re-use the latest available image in your local docker environment. To force your docker to download the latest version of an image you can use `l3d update` which will also start the working container for you but check for an updated version of the image first.

## Update the start script

Just call `l3d selfupdate` and the start script will be updated from the original repository.

## Working with Git credentials

In order to commit and push with git you have to at least configure your email address and username for the git client. If you configure those globally on your host, each of the **L3D** containers will inherit those settings and there is nothing that needs to be done inside the container.

To configure those credentials, use these commands:

```bash
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
```

## Getting help

Calling `l3d help` displays information about **L3D** and provides a link to further details.

## Examples

### Start a new project

```bash
cd /var/www
mkdir testproject1
cd testproject1
l3d
wget https://gitlab.lakedrops.com/composer/project/drupal-8/raw/master/.gitignore
wget https://gitlab.lakedrops.com/composer/project/drupal-8/raw/master/composer.json
composer create-project --no-interaction
ahoy d4d up
```

### Use with an existing project

```bash
cd /path/to/your/project
l3d
composer update
```