This template includes everything necessary to run on Lagoon (in both the local development environments or on hosted Lagoon clusters.)
This project template should provide a kickstart for managing your site dependencies with Composer. It is based on the original Drupal Composer Template,
This example contains the following services:
- Drupal 9.x (Latest)
- PHP 8.1
- NGINX
- MariaDB 10.6
- Solr 8
- Redis 6
To see similar projects with additional services, please visit https://github.com/lagoon-examples and to find out more about the services, please visit the documentation at https://docs.lagoon.sh/lagoon
OR
-
Checkout this project repo and confirm the path is in Docker's file sharing config - https://docs.docker.com/docker-for-mac/#file-sharing
git clone https://github.com/lagoon-examples/drupal9-full.git drupal9-full && cd $_
-
Make sure you don't have anything running on port 80 on the host machine (like a web server) then run
pygmy up -
Build and start the build images:
docker-compose up -d docker-compose exec cli composer install -
Visit the new site @
http://drupal9-full.docker.amazee.io
- If any steps fail, you're safe to rerun from any point. Starting again from the beginning will just reconfirm the changes.
This repository is set up with a .lando.yml file, which allows you to use Lando instead of pygmy for your local development environment.
-
Checkout the project repo and confirm the path is in Docker's file sharing config - https://docs.docker.com/docker-for-mac/#file-sharing
git clone https://github.com/lagoon-examples/drupal9-full.git drupal9-full && cd $_
-
Make sure you have pygmy-go stopped. Run
pygmy stopto be sure. -
We already have a Lando file in this repository, so we just need to run the following command to get Lando up:
lando start- Install your Drupal site with Drush:
lando drush si -y-
Visit the new site @
http://drupal9-full.lndo.site -
For more information on how to configure your site, check out the documentation.
When installing the given composer.json some tasks are taken care of:
- Drupal will be installed in the
web-directory. - Autoloader is implemented to use the generated composer autoloader in
vendor/autoload.php, instead of the one provided by Drupal (web/vendor/autoload.php). - Modules (packages of type
drupal-module) will be placed inweb/modules/contrib/ - Themes (packages of type
drupal-theme) will be placed inweb/themes/contrib/ - Profiles (packages of type
drupal-profile) will be placed inweb/profiles/contrib/ - Creates the
web/sites/default/files-directory. - Latest version of Drush is installed locally for use at
vendor/bin/drush. - Latest version of Drupal Console is installed locally for use at
vendor/bin/drupal. - The correct scaffolding for your Drupal core version is installed, along with Lagoon-specific scaffolding from amazeeio/drupal-integrations project and the
assets/directory in this repo. For more information see drupal/core-composer-scaffold
Follow the steps below to update your core files. Scaffolding is managed by Drupal core. See the assets/ directory for more information.
- Run
composer update drupal/core-recommended drupal/core-dev-pinned --with-dependencies
Composer recommends no. They provide argumentation against but also workarounds if a project decides to do it anyway.
If you need to apply patches (depending on the project being modified, a pull request is often a better solution), you can do so with the composer-patches plugin.
To add a patch to drupal module foobar insert the patches section in the extra section of composer.json:
"extra": {
"patches": {
"drupal/foobar": {
"Patch description": "URL to patch"
}
}
}These files are used by Github actions to run a basic suite of tests specific to this template. They utilise the excellent Leia tool to generate a set of mocha-compatible tests. Have a look through the markdown for both files, and you will see what they do. These tests can also be generated and run locally.