ddev projects can be extended to provide additional services. This is achieved by adding docker-compose files to a project's .ddev directory that defines the added service(s). This page provides configurations for services that are ready to be added to your project with minimal setup.
If you need a service not provided here, see Defining an additional service with Docker Compose
This recipe adds an Apache Solr container to a project. It will set up a solr core with the solr configuration you define.
Installation:
- Copy docker-compose.solr.yaml to the .ddev folder for your project.
- You can change the Solr version by changing the
image
value in docker-compose.solr.yaml, for example:image: solr:6.6
. The most obvious official solr image tags are at hub.docker.com. - Create the folder path .ddev/solr/conf.
- Copy the Solr configuration files for your project to
.ddev/solr/conf
. e.g. if using Drupal Search API Solr, you would copy theweb/modules/contrib/search_api_solr/solr-conf-templates/6.x/
contents from the module code base into.ddev/solr/conf
. - Ensure that the configuration files are present before running
ddev start
.
Drupal8-specific extra steps:
- Enable the Search API Solr Search Defaults module and edit the server settings at
/admin/config/search/search-api/server/default_solr_server/edit
. - Change the Solr core setting to
dev
and under Advanced Server Configuration change the solr.install.dir setting to/opt/solr
. - Go to the view tab and download the updated config.zip file and then stop the project
ddev stop
. - Remove the original configuration files from
.ddev/solr/conf
and add the updated files from config.zip. - In order for changes to take effect you must remove the Solr volume by running
docker volume rm ddev-PROJECT-NAME_solrdata
e.g. if your project is called "myproject" then you would rundocker volume rm ddev-myproject_solrdata
. - Now you can start the project
ddev start
.
Updating Apache Solr configuration
- Run
ddev stop
to stop your application. - Run
ddev remove
to remove your application's containers (note: if you do not use the destructive option, the index will be untouched). - copy the new solr configuration files for your project to .ddev/solr/conf as described in Installation, above.
- Run
ddev start
to rebuild and restart the containers. - An excellent way to automate the updating of the solr config uses a solr-init.sh script mounted into the solr container's
/docker-entrypoint-initdb.d/solr-init.sh
.
Interacting with Apache Solr
- The Solr admin interface will be accessible at:
http://<projectname>.ddev.site:8983/solr/
For example, if the project is named "myproject" the hostname will be:http://myproject.ddev.site:8983/solr/
. - To access the Solr container from the web container use:
http://solr:8983/solr/
- A Solr core is automatically created with the name "dev"; it can be accessed at the URL:
http://solr:8983/solr/dev
This recipe adds a Memcached 1.5 container to a project. The default configuration allocates 128 MB of RAM for the Memcached instance; to change that or other command line arguments, edit the command
array within the docker-compose file.
Installation:
- Copy docker-compose.memcached.yaml to the .ddev folder for your project.
- Run
ddev start
.
Interacting with Memcached
- The Memcached instance will listen on TCP port 11211 (the Memcached default).
- Configure your application to access Memcached on the host:port
memcached:11211
. - To reach the Memcached admin interface, run
ddev ssh
to connect to the web container, then usenc
ortelnet
to connect to the Memcached container on port 11211, i.e.nc memcached 11211
. You can then run commands such asstats
to see usage information.
This recipe adds a Beanstalk container to a project.
Installation:
- Copy docker-compose.beanstalk.yaml to the .ddev folder for your project.
- Run
ddev start
.
Interacting with the Beanstalk Queue
- The Beanstalk instance will listen on TCP port 11300 (the beanstalkd default).
- Configure your application to access Beanstalk on the host:port
beanstalk:11300
.