LakeDropsDrupalDev issueshttps://gitlab.lakedrops.com/docker/l3d/-/issues2024-03-28T12:12:49Zhttps://gitlab.lakedrops.com/docker/l3d/-/issues/147Auto-restart of l3d containers causes boot/login problems on Ubuntu 20 and later2024-03-28T12:12:49ZJürgen Haasjuergen.haas@lakedrops.comAuto-restart of l3d containers causes boot/login problems on Ubuntu 20 and laterFollowing [this issue](https://github.com/docker/for-linux/issues/1074), there is a perfect explanation of what's going wrong:
I think I understand what's happening, but don't think there's an easy (or at least not a "generic") solution...Following [this issue](https://github.com/docker/for-linux/issues/1074), there is a perfect explanation of what's going wrong:
I think I understand what's happening, but don't think there's an easy (or at least not a "generic") solution.
I suspect Ubuntu 20.04 started using $XDG_RUNTIME_DIR for the ssh agent. $XDG_RUNTIME_DIR is specific to each user, and (see the XDG Base Directory Specification) is bound to the user's login session;
> The lifetime of the directory MUST be bound to the user being logged in. It MUST be created when the user first logs in and if the user fully logs out the directory MUST be removed.
The problem in this case is that;
The docker daemon is a "system" process, it's not bound to a specific user. The docker service is started before users are logged in (which also is the common situation for a server situation)
However, the container you created;
- Has a restart policy; it will be restarted when docker restarts (and docker is not aware that that specific container assumes a login session is started for user "X")
- While the compose file uses $SSH_AUTH_SOCK to get the correct path for the socket, that environment variable will only be evaluated when the container is created. After that, the container's configuration is immutable. (so even if the ssh-agent is started when the container starts, it could mean it's looking for an old / wrong location)
- The compose file uses the "short-hand" notation to define the bind-mount (<host-path>:<container-path>). The short-hand notation will automatically create the path on the host if it's missing. That seemed like a "good idea" at the time, but in hind-sight is causing many issues (we tried deprecating the behavior, but too many people rely on it, so we had to revert that Un-deprecate auto-creation of host directories for mounts moby/moby#21666).
- If the path ($SSH_AUTH_SOCK in this case) isn't found when the container is started, the docker daemon will create the path on the host. Given that it has no knowledge if the path is expected to be a "directory" or a "file", the default ("directory") is assumed, and because the daemon runs as root, the path is created with root as owner. Effectively, this means that when the container is started, and $SSH_AUTH_SOCK is missing (which is the case until the user logs in), that the daemon creates a directory with that name.
As a workaround, you can use the long-form notation to specify the bind-mount; https://docs.docker.com/compose/compose-file/#long-syntax-3 (which is the equivalent of the long-form --mount flag on docker run). The long-form syntax uses a different API, and will not automatically create the path on the host; instead, it will produce an error (which causes the container to fail when starting, until the path in $SSH_AUTH_SOCK is found. With a restart policy set on the container, this will likely mean the container will continue fail (and be restarted) until the user logs in.https://gitlab.lakedrops.com/docker/l3d/-/issues/146Wodby PHP container removed global drush2024-03-11T08:08:40ZJürgen Haasjuergen.haas@lakedrops.comWodby PHP container removed global drushWodby has removed global drush from their latest PHP images, see https://github.com/wodby/drupal-php/issues/98
That means we have to use `/var/www/html/vendor/bin/drush` instead of `/usr/local/bin/drush` in cronjobs and elsewhere.Wodby has removed global drush from their latest PHP images, see https://github.com/wodby/drupal-php/issues/98
That means we have to use `/var/www/html/vendor/bin/drush` instead of `/usr/local/bin/drush` in cronjobs and elsewhere.https://gitlab.lakedrops.com/docker/l3d/-/issues/145Ahoy Pull-SQL and Config Split2024-03-10T09:10:48ZJürgen Haasjuergen.haas@lakedrops.comAhoy Pull-SQL and Config SplitThe use case and a potential solution is proposed in [this issue for config_split](https://www.drupal.org/project/config_split/issues/3426621).The use case and a potential solution is proposed in [this issue for config_split](https://www.drupal.org/project/config_split/issues/3426621).https://gitlab.lakedrops.com/docker/l3d/-/issues/144Conflicting PHP versions in docker compose and .lakedrops need proper handling2024-03-07T16:42:44ZJürgen Haasjuergen.haas@lakedrops.comConflicting PHP versions in docker compose and .lakedrops need proper handlingJürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/143Deleting L3D container when PHP version changed doesn't work2024-03-07T16:43:24ZJürgen Haasjuergen.haas@lakedrops.comDeleting L3D container when PHP version changed doesn't workJürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/141Add VisiData2024-02-28T15:41:03ZJürgen Haasjuergen.haas@lakedrops.comAdd VisiDatahttps://github.com/saulpw/visidata
```
pip3 install visidata
```https://github.com/saulpw/visidata
```
pip3 install visidata
```https://gitlab.lakedrops.com/docker/l3d/-/issues/140Config split commands are included in ahoy, list the module as a requirement ...2024-03-02T14:14:40ZBaris TosunConfig split commands are included in ahoy, list the module as a requirement or add commands without it`vendor/lakedrops/docker4drupal/ahoy.current.yml` defines the commands for interacting with the live database. If config split is not installed on your project, these commands fail with the following output:
`There are no commands defin...`vendor/lakedrops/docker4drupal/ahoy.current.yml` defines the commands for interacting with the live database. If config split is not installed on your project, these commands fail with the following output:
`There are no commands defined in the "config-split" namespace.`
Is it pedantic of me to request config_split module to be listed as a requirement of Lakedrops enabled Drupal projects?https://gitlab.lakedrops.com/docker/l3d/-/issues/139Restart existing L3D project may fail to validate2024-02-08T16:54:36ZJürgen Haasjuergen.haas@lakedrops.comRestart existing L3D project may fail to validateWhen load `l3d` from the project root, it checks for configuration in the `.lakedrops.yml` file. If we call `l3d [PRJNAME]` from a different directory, that starts the project as well, if the container already exists, but it misses all t...When load `l3d` from the project root, it checks for configuration in the `.lakedrops.yml` file. If we call `l3d [PRJNAME]` from a different directory, that starts the project as well, if the container already exists, but it misses all those validations. This should be fixed.Jürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/138Fix IDEA config2024-02-09T10:34:15ZJürgen Haasjuergen.haas@lakedrops.comFix IDEA configThe PHP CodeSniffer is not working properly in latest JetBrains IDEA and needs research and fix.The PHP CodeSniffer is not working properly in latest JetBrains IDEA and needs research and fix.Jürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/137Drupal can't be installed properly.2024-01-30T12:55:20ZTolga OzsesDrupal can't be installed properly.To test out l3d, I created a directory, cd'd into it and executed `l3d`. Below is what happened:
```
l3d
Which PHP version is your project using [7.4, 8.0, 8.1, 8.2]? 8.1
Do you want to downgrade Composer to version 1 - 0=No, 1=Yes? [No...To test out l3d, I created a directory, cd'd into it and executed `l3d`. Below is what happened:
```
l3d
Which PHP version is your project using [7.4, 8.0, 8.1, 8.2]? 8.1
Do you want to downgrade Composer to version 1 - 0=No, 1=Yes? [No]
Name your project (used as subdomain): [dev-testing]
Unable to find image 'registry.lakedrops.com/docker/l3d/php-8.1:v2.9.5' locally
v2.9.5: Pulling from docker/l3d/php-8.1
…
…
…
Digest: sha256:8bf21bd1b06d16364e0e84f7bdb8131dc765e1184b16aad1147a094a2cbf3156
Status: Downloaded newer image for registry.lakedrops.com/docker/l3d/php-8.1:v2.9.5
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
0e201227ee2d90341b0b339082ad69cfbf98779c73ed7503c08d78b9202cc066
Lets start a new project here ...
Options to start:
0 none: start with an empty container
1 LakeDrops Drupal 10 project template
2 LakeDrops Drupal 9 project template
3 LakeDrops Drupal 8 project template
4 drupal.org recommended project template (Drupal 10)
5 drupal.org recommended project template (Drupal 9)
6 Drupal's community project template (Drupal 8)
7 Custom project template
8 Existing git repository
Choose an option: 2
Creating a "lakedrops/d9-project" project at "./"
Installing lakedrops/d9-project (v1.2.1)
- Syncing lakedrops/d9-project (v1.2.1) into cache
- Installing lakedrops/d9-project (v1.2.1): Cloning 137f047dd7 from cache
Created project in /drupal/./
Loading composer repositories with package information
Updating dependencies
Lock file operations: 225 installs, 0 updates, 0 removals
…
…
…
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 225 installs, 0 updates, 0 removals
…
…
…
Gathering patches from patch file.
Gathering patches for dependencies. This might take a minute.
…
…
…
- Applying patches for phpcollection/phpcollection
…
- Applying patches for drupal/core
…
…
…
- Applying patches for henrywhitaker3/healthchecks-io
…
...
...
...
Hint: To allow running the config command recommended below before dependencies are installed, run create-project with --no-install.
You can then cd into /drupal, configure allow-plugins, and finally run a composer install to complete the process.
In PluginManager.php line 743:
phpstan/extension-installer contains a Composer plugin which is blocked by your allow-plugins config. You may add it to the list if you consider it safe.
You can run "composer config --no-plugins allow-plugins.phpstan/extension-installer [true|false]" to enable it (true) or disable it explicitly and suppress this exception (false)
See https://getcomposer.org/allow-plugins
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [<package> [<directory> [<version>]]]
chmod: ./.git/objects/pack/pack-919906caa19f02cefc16381957087fbbcb1a304e.pack: Permission denied
chmod: ./.git/objects/pack/pack-919906caa19f02cefc16381957087fbbcb1a304e.idx: Permission denied
chmod: ./vendor/lakedrops/ahoy/.git/objects/pack/pack-ccd428b71b719f521e3b2d78b0688aaccbcf7400.idx: Permission denied
chmod: ./vendor/lakedrops/ahoy/.git/objects/pack/pack-ccd428b71b719f521e3b2d78b0688aaccbcf7400.pack: Permission denied
chmod: ./vendor/lakedrops/composer-json-utils/.git/objects/pack/pack-9e0924be65c4e98f3c3e424d03ed07239e3fec88.pack: Permission denied
chmod: ./vendor/lakedrops/composer-json-utils/.git/objects/pack/pack-9e0924be65c4e98f3c3e424d03ed07239e3fec88.idx: Permission denied
chmod: ./vendor/lakedrops/docker-traefik/.git/objects/pack/pack-84a526f42ce8a92ba9aec7bca81f35c6f5952832.idx: Permission denied
chmod: ./vendor/lakedrops/docker-traefik/.git/objects/pack/pack-84a526f42ce8a92ba9aec7bca81f35c6f5952832.pack: Permission denied
/home/root/.zshrc:2: no such file or directory: /opt/homebrew/bin/brew
➜ /drupal git:(v1.2.1) ✗ ls
composer.json composer.lock config drush vendor web
➜ /drupal git:(v1.2.1) ✗ ls web
core modules
➜ /drupal git:(v1.2.1) ✗ ls web/core/ü
ls: web/core/ü: No such file or directory
➜ /drupal git:(v1.2.1) ✗ ls web/core/
CHANGELOG.txt MAINTAINERS.txt composer.json drupalci.yml package.json themes
COPYRIGHT.txt PATCHES.txt config globals.api.php phpcs.xml.dist yarn.lock
INSTALL.mysql.txt UPDATE.txt core includes phpunit.xml.dist
INSTALL.pgsql.txt USAGE.txt core.api.php install.php profiles
INSTALL.sqlite.txt assets core.libraries.yml lib rebuild.php
INSTALL.txt authorize.php core.link_relation_types.yml misc scripts
LICENSE.txt b core.services.yml modules tests
➜ /drupal git:(v1.2.1) ✗ la
total 596K
lrwxr-xr-x 1 root root 9 Nov 8 13:03 .ahoy.l3d -> /etc/ahoy
-rw-r--r-- 1 root root 110 Nov 8 13:03 .ahoy.yml
-rw-r--r-- 1 root root 134 Nov 8 13:03 .env
drwxrwxr-x 14 root root 448 Nov 8 13:00 .git
-rw-rw-r-- 1 root root 692 Nov 8 13:00 .gitignore
-rw-rw-r-- 1 root root 104 Nov 8 13:00 .gitlab-ci.yml
-rw-rw-r-- 1 root root 3.9K Nov 8 13:00 composer.json
-rw-rw-r-- 1 root root 574.7K Nov 8 13:01 composer.lock
drwxrwxr-x 3 root root 96 Nov 8 13:00 config
drwxrwxr-x 3 root root 96 Nov 8 13:02 drush
drwxrwxr-x 45 root root 1.4K Nov 8 13:03 vendor
drwxrwxr-x 4 root root 128 Nov 8 13:02 web
➜ /drupal git:(v1.2.1) ✗ pwd
/drupal
➜ /drupal git:(v1.2.1) ✗ vim composer.json
zsh: command not found: vim
➜ /drupal git:(v1.2.1) ✗ nano composer.json
➜ /drupal git:(v1.2.1) ✗ ls
composer.json composer.lock config drush vendor web
➜ /drupal git:(v1.2.1) ✗ ls web/core/b
core
➜ /drupal git:(v1.2.1) ✗ ls web/core/b/core
modules
➜ /drupal git:(v1.2.1) ✗ ls web/core/b/core/modules
content_moderation layout_builder serialization system taxonomy views
➜ /drupal git:(v1.2.1) ✗
```https://gitlab.lakedrops.com/docker/l3d/-/issues/136Test doGit2023-12-31T12:47:58ZJürgen Haasjuergen.haas@lakedrops.comTest doGithttps://github.com/dpi/dogithttps://github.com/dpi/dogithttps://gitlab.lakedrops.com/docker/l3d/-/issues/135L3d is not working on MAC(M1) after Docker Desktop upgrade to 4.20.12024-02-14T10:10:28ZShyam LalL3d is not working on MAC(M1) after Docker Desktop upgrade to 4.20.1Hello Team,
After update Docker Desktop to latest version(4.20.1) the L3d is out of order. Even executing the 'composer install' it is giving an error 'Cannot connect to the Docker daemon at unix:///Users/.../.docker/run/docker.sock. I...Hello Team,
After update Docker Desktop to latest version(4.20.1) the L3d is out of order. Even executing the 'composer install' it is giving an error 'Cannot connect to the Docker daemon at unix:///Users/.../.docker/run/docker.sock. Is the docker daemon running?', while if we execute command 'docker version' it's giving the output.
We were expecting it as an error due to upgrade, so we decided to downgrade it. We installed a older version '4.17.0'. But still we are not able to resolve the issue. Still it's giving same error 'Cannot connect to the Docker daemon at unix:///Users/SLal/.docker/run/docker.sock. Is the docker daemon running?'
Please check attached screenshot. ![Screenshot_2023-06-29_at_13.39.49](/uploads/bd38fe1d8d42c44ab8e4cdb24fc6614f/Screenshot_2023-06-29_at_13.39.49.png)https://gitlab.lakedrops.com/docker/l3d/-/issues/134Add PhpDocumentor 32023-06-27T16:24:34ZJürgen Haasjuergen.haas@lakedrops.comAdd PhpDocumentor 3Following [this blog post](https://kevinquillen.com/setting-phpdocumentor-3-drupal-9-10) the PHPDocumentor generates static html documentation about PHP applications and/or packages.
The [documentation](https://docs.phpdoc.org/3.0/) is ...Following [this blog post](https://kevinquillen.com/setting-phpdocumentor-3-drupal-9-10) the PHPDocumentor generates static html documentation about PHP applications and/or packages.
The [documentation](https://docs.phpdoc.org/3.0/) is a great example of how the result looks like.
Let's add that to our Drupal Dev Environment.https://gitlab.lakedrops.com/docker/l3d/-/issues/133Add Unlighthouse2023-09-16T10:06:49ZJürgen Haasjuergen.haas@lakedrops.comAdd UnlighthouseWith https://unlighthouse.dev we can do extensive website tests, which is really helpful during development.With https://unlighthouse.dev we can do extensive website tests, which is really helpful during development.https://gitlab.lakedrops.com/docker/l3d/-/issues/132glab auth has stopped working2023-05-23T11:47:25ZDejanglab auth has stopped workingWe noticed that it stopped working somehow, so we are always getting this error:
```
error using api: GET https://gitlab.example.net/api/v4/user: 401 {message: 401 Unauthorized}
```
I did some research & testing, and I am pretty sure i...We noticed that it stopped working somehow, so we are always getting this error:
```
error using api: GET https://gitlab.example.net/api/v4/user: 401 {message: 401 Unauthorized}
```
I did some research & testing, and I am pretty sure it's related to:
https://gitlab.com/gitlab-org/cli/-/merge_requests/1270
(if I manually edit ~/.config/glab-cli/config.yml and add the correct token there - it works. but If I try to authenticate via the command line dialog - it says 401 Unauthorized).
can we upgrade glab from 1.29.1 -> 1.30.0?
I will prepare MRhttps://gitlab.lakedrops.com/docker/l3d/-/issues/131[WIP] Re-architect project configuration2024-02-14T10:13:48ZJürgen Haasjuergen.haas@lakedrops.com[WIP] Re-architect project configuration# Key components
| Type | Project | Comment | Local Dev | Pipelines | Deployment | Hosting |
| --- | --- | --- | --- | --- | --- | --- |
| Docker images | `gitlab-drupal-ci/php-#.#` | | | x | x | |
| Docker image | `l3d/run` | | x | | |...# Key components
| Type | Project | Comment | Local Dev | Pipelines | Deployment | Hosting |
| --- | --- | --- | --- | --- | --- | --- |
| Docker images | `gitlab-drupal-ci/php-#.#` | | | x | x | |
| Docker image | `l3d/run` | | x | | | |
| Docker image | `l3d/setup` | | x | | | |
| Docker images | `l3d/php-#.#` | Extends gitlab-drupal-ci | x | | | |
| Docker images | `wodby/*` | Apache, PHP, MariaDB, etc. | x | x | | x |
| Composer plugin | `lakedrops/drupal-development-environment` | | x | x | | |
| Composer plugin | `lakedrops/drupal-environment` | | x | x | | x |
| GitLab Runner | | | | x | x | |
# Configurations
Currently, the configuration happens in many different places:
- Environment variables
- some get defined dynamically by `l3d/run` when starting L3D for a project
- then we read environment variables from user home: `~/.env`
- finally we read environment variables from project root: `./.env`
- Project variables
- project specific variables are defined in `.lakedrops.yml`, they get committed the to git repository and they allow stage specific overwrites
- user specific variables can be defined in `.lakedrops.user.yml`, they don't get committed but they can extend or overwrite project specific settings
- GitLab CI variables
- in GitLab CI templates
- on the GitLab host: global / per group / per project
- in the project specific `.gitlab-ci.yml` file which is being committed to the git repository but has no stage specific configuration overwrite
Unfortunately, these are too many options. It's not difficult to get lost and the worst fact is, that a few variables need to be defined more than once and therefore produce redundant data, which is difficult to maintain.
## Proposed improvements
Default values for ALL configuration options go into GitLab CI templates on the server.
Projects should be usable without changing any of the default values.
Overwriting configuration is supported in the following locations:
- GitLab host: global, group and project specific variables
- Project specific configuration: `{PROJECTROOT}/.lakedrops.yml` as part of the git repository and with stage specific overwrites
- Developer specific configuration: `~/.lakedrops.yml` and `{PROJECTROOT}/.lakedrops.user.yml`, all just local files
Other variables (`.env`, `~/.env` and `.gitlab-ci.yml`) are no longer recognized.https://gitlab.lakedrops.com/docker/l3d/-/issues/130Support for Apple Silicon architecture2024-03-04T10:32:19ZBaris TosunSupport for Apple Silicon architectureFor reference, I found this closed issue when creating this one: https://gitlab.lakedrops.com/docker/l3d/-/issues/120
We have a couple of developers here developing on Apple Silicon. The step by step instructions work out of the box exc...For reference, I found this closed issue when creating this one: https://gitlab.lakedrops.com/docker/l3d/-/issues/120
We have a couple of developers here developing on Apple Silicon. The step by step instructions work out of the box except for the `a d4d up` step, where the following type of issue recurs for multiple required service images:
`Error response from daemon: image with reference [service/name:x] was found but does not match the specified platform: wanted linux/amd64, actual: linux/arm64`
To work around this I created a docker-compose.override.yml file in the project root, where I copied the entire contents of the main docker-compose.yml file (which gets overwritten on `composer install`) and added the `platform: linux/amd64` line before the image for the services in question, namely mariadb, mariadbtest, pma and mailhog, eg:
```services:
mariadb:
platform: linux/amd64
image: 'wodby/mariadb:10.6'
```
Once solved, the file was shared with another Apple Silicon based developer (on a different project), and they were also able to install successfully.
This hint came from [stackoverflow](https://stackoverflow.com/a/68791503/2298259).
So the linux/amd64 version of the images in question are explicitly requested. At some point I expect arm64 variants will be released and they will have better performance, so I wouldn't suggest committing this fix in the repo. But this could be useful on a FAQ/Troubleshooting/Documentation page for Apple Silicon users.NicoNicohttps://gitlab.lakedrops.com/docker/l3d/-/issues/129Get WKHtmlToPDF to work in latest images2023-03-28T10:43:40ZJürgen Haasjuergen.haas@lakedrops.comGet WKHtmlToPDF to work in latest images- The PHP `-dev` image is required
- The commands in the install script need to be executed with `sudo`
- The package wkhtmltopdf can not be found for Alpine 3.17
- The path to the script in docker-compose needs to be absolute, not relative- The PHP `-dev` image is required
- The commands in the install script need to be executed with `sudo`
- The package wkhtmltopdf can not be found for Alpine 3.17
- The path to the script in docker-compose needs to be absolute, not relativeJürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/128Add support for PHP profiling2023-03-28T12:53:32ZJürgen Haasjuergen.haas@lakedrops.comAdd support for PHP profilingJürgen Haasjuergen.haas@lakedrops.comJürgen Haasjuergen.haas@lakedrops.comhttps://gitlab.lakedrops.com/docker/l3d/-/issues/127Issue with PHP container start2023-03-29T06:53:31ZShyam LalIssue with PHP container start**Machine**: MacBook Air, M1 16GB
Problem faced and Solution during setup.
**Problem**: After completion of `l3d` once you executer `a d4d up`, all containers started successfully apart from `apache-1` and `php-1`. It give an error tha...**Machine**: MacBook Air, M1 16GB
Problem faced and Solution during setup.
**Problem**: After completion of `l3d` once you executer `a d4d up`, all containers started successfully apart from `apache-1` and `php-1`. It give an error that `/drupal is not shared` [Screenshot_2023-02-02_at_09.04.27](/uploads/54ad7d34ec8b9400c99a5bd0d92769f0/Screenshot_2023-02-02_at_09.04.27.png). Once we try to start them manually through UI then `apache-1` starts successfully but `php-1` give a mount error for `/host_mnt/drupal`.
**Changes done to overcome the problem!**: To overcome above problem edit `ROOT_FOLDER/docker-compose.yml` and perform following changes:
```
php:
image: 'wodby/drupal-php:$PHP_VERSION'
environment:
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
#DB_HOST: mariadb
#DB_USER: drupal
#DB_PASSWORD: drupal
#DB_NAME: drupal
#DB_DRIVER: mysql
#COMPOSER_ALLOW_SUPERUSER: 1
#SSH_AUTH_SOCK: /ssh-agent
volumes:
#- /etc/timezone:/etc/timezone:ro
#- /etc/localtime:/etc/localtime:ro
- /Users/USER_NAME/Sites/docker_l3d:/var/www/html
- /Users/USER_NAME/Sites/docker_l3d/drush:/etc/drush
#- /drupal:/ssh-agent
```