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 10
- PHP 8
- NGINX
- MariaDB 10.x
- Solr 8
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
You have to create a search_api server having "solr" machine name at /admin/config/search/search-api/add-server
to make the automated configuration included in the all.settings.php file work.
When running a solr image
instead of a build
(ie image: uselagoon/solr-8-drupal:latest
in your docker-compose.yml file) you should periodically reload and update the config in the solr service. This is done by ssh'ing into the solr service and running the command to read the new config from the image and recreate the solr core with it.
solr-recreate drupal /solr-conf
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/drupal-solr.git drupal-solr && 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://drupal-solr.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/drupal-solr.git drupal-solr && cd $_
-
Make sure you have pygmy-go stopped. Run
pygmy-go stop
to 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://drupal-solr.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.