diff --git a/README.md b/README.md index 8ce49b9f..d3c9deed 100644 --- a/README.md +++ b/README.md @@ -278,20 +278,29 @@ Additionally to the default stack, there are a variety of other services that ca MailHog RabbitMQ + Solr v1.0.0 3.6 + 5 latest 3.7 + 6 latest + 7 + + + + + latest diff --git a/compose/docker-compose.override.yml-all b/compose/docker-compose.override.yml-all index 1ac82c37..bd86027e 100644 --- a/compose/docker-compose.override.yml-all +++ b/compose/docker-compose.override.yml-all @@ -34,3 +34,25 @@ services: - bind - php - httpd + + solr: + image: solr:${SOLR_SERVER:-latest} + hostname: solr + ports: + - "${LOCAL_LISTEN_ADDR}${HOST_PORT_SOLR:-8983}:8983" + networks: + app_net: + ipv4_address: 172.16.238.220 + volumes: + - data-solr:/opt/solr/server/solr/mycores + entrypoint: + - docker-entrypoint.sh + - solr-precreate + - ${SOLR_CORE_NAME:-devilbox} + depends_on: + - bind + - php + - httpd + +volumes: + data-solr: diff --git a/compose/docker-compose.override.yml-solr b/compose/docker-compose.override.yml-solr new file mode 100644 index 00000000..8f9d1c33 --- /dev/null +++ b/compose/docker-compose.override.yml-solr @@ -0,0 +1,24 @@ +version: '2.1' + +services: + solr: + image: solr:${SOLR_SERVER:-latest} + hostname: solr + ports: + - "${LOCAL_LISTEN_ADDR}${HOST_PORT_SOLR:-8983}:8983" + networks: + app_net: + ipv4_address: 172.16.238.220 + volumes: + - data-solr:/opt/solr/server/solr/mycores + entrypoint: + - docker-entrypoint.sh + - solr-precreate + - ${SOLR_CORE_NAME:-devilbox} + depends_on: + - bind + - php + - httpd + +volumes: + data-solr: diff --git a/docs/_includes/links/documentation.rst b/docs/_includes/links/documentation.rst index 4f53401c..124bbf85 100644 --- a/docs/_includes/links/documentation.rst +++ b/docs/_includes/links/documentation.rst @@ -51,3 +51,15 @@ Dockerhub: RabbitMQ + +.. |ext_lnk_solr_github| raw:: html + + + Github: Solr + + +.. |ext_lnk_solr_dockerhub| raw:: html + + + Dockerhub: Solr + diff --git a/docs/_includes/snippets/additional-container.rst b/docs/_includes/snippets/additional-container.rst index 397e753b..0f83cf37 100644 --- a/docs/_includes/snippets/additional-container.rst +++ b/docs/_includes/snippets/additional-container.rst @@ -5,3 +5,5 @@ +---------------------------+----------+----------+----------------+ | RabbitMQ | rabbit | rabbit | 172.16.238.210 | +---------------------------+----------+----------+----------------+ +| Solr | solr | solr | 172.16.238.220 | ++---------------------------+----------+----------+----------------+ diff --git a/docs/_includes/snippets/docker-compose-override-tree-view.rst b/docs/_includes/snippets/docker-compose-override-tree-view.rst index f4412af8..d4a9b9c6 100644 --- a/docs/_includes/snippets/docker-compose-override-tree-view.rst +++ b/docs/_includes/snippets/docker-compose-override-tree-view.rst @@ -11,8 +11,9 @@ However, each example also exists in its standalone file as shown below: ├── docker-compose.override.yml-all ├── docker-compose.override.yml-mailhog ├── docker-compose.override.yml-rabbitmq + ├── docker-compose.override.yml-solr └── README.md - 0 directories, 4 files + 0 directories, 5 files .. seealso:: :ref:`custom_container_enable_all_additional_container` diff --git a/docs/custom-container/enable-all-container.rst b/docs/custom-container/enable-all-container.rst index 4b1bdb83..1f55c010 100644 --- a/docs/custom-container/enable-all-container.rst +++ b/docs/custom-container/enable-all-container.rst @@ -55,3 +55,4 @@ In order to fully customize each container, refer to their own documentation sec .. seealso:: * :ref:`custom_container_enable_mailhog` * :ref:`custom_container_enable_rabbitmq` + * :ref:`custom_container_enable_solr` diff --git a/docs/custom-container/enable-solr.rst b/docs/custom-container/enable-solr.rst new file mode 100644 index 00000000..d03e2a11 --- /dev/null +++ b/docs/custom-container/enable-solr.rst @@ -0,0 +1,151 @@ +.. include:: /_includes/all.rst + +.. _custom_container_enable_solr: + +************************* +Enable and configure Solr +************************* + +This section will guide you through getting Solr integrated into the Devilbox. + +.. seealso:: + * |ext_lnk_solr_github| + * |ext_lnk_solr_dockerhub| + * :ref:`custom_container_enable_all_additional_container` + + +**Table of Contents** + +.. contents:: :local: + + +Overview +======== + +Available overwrites +-------------------- + +.. include:: /_includes/snippets/docker-compose-override-tree-view.rst + + +Solr settings +------------- + +In case of Solr, the file is ``compose/docker-compose.override.yml-solr``. This file +must be copied into the root of the Devilbox git directory. + ++-----------------------+------------------------------------------------------------------------------------------------------+ +| What | How and where | ++=======================+======================================================================================================+ +| Example compose file | ``compose/docker-compose.override.yml-all`` or |br| ``compose/docker-compose.override.yml-solr`` | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Container IP address | ``172.16.238.220`` | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Container host name | ``solr`` | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Container name | ``solr`` | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Mount points | none | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Exposed port | ``8983`` (can be changed via ``.env``) | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Available at | ``http://localhost:8983`` (API and Admin WebUI) | ++-----------------------+------------------------------------------------------------------------------------------------------+ +| Further configuration | none | ++-----------------------+------------------------------------------------------------------------------------------------------+ + +Solr env variables +------------------ + +Additionally the following ``.env`` variables can be created for easy configuration: + ++------------------------------+-------------------+----------------------------------------------------------------------------+ +| Variable | Default value | Description | ++==============================+===================+============================================================================+ +| ``HOST_PORT_SOLR`` | ``8983`` | Controls the host port on which Solr API and WebUIwill be available at. | ++------------------------------+-------------------+----------------------------------------------------------------------------+ +| ``SOLR_SERVER`` | ``latest`` | Controls the Solr version to use. | ++------------------------------+-------------------+----------------------------------------------------------------------------+ +| ``SOLR_CORE_NAME`` | ``devilbox`` | Default Solr core name | ++------------------------------+-------------------+----------------------------------------------------------------------------+ + + +Instructions +============ + +1. Copy docker-compose.override.yml +----------------------------------- + +Copy the Solr Docker Compose overwrite file into the root of the Devilbox git directory. +(It must be at the same level as the default ``docker-compose.yml`` file). + +.. code-block:: bash + + host> cp compose/docker-compose.override.yml-solr docker-compose.override.yml + +.. seealso:: + * :ref:`docker_compose_override_yml` + * :ref:`add_your_own_docker_image` + * :ref:`overwrite_existing_docker_image` + + +2. Adjust ``.env`` settings (optional) +-------------------------------------- + +Solr is using sane defaults, which can be changed by adding variables to the ``.env`` file +and assigning custom values. + +Add the following variables to ``.env`` and adjust them to your needs: + +.. code-block:: bash + :caption: .env + + # Solr version to choose + #SOLR_SERVER=5 + #SOLR_SERVER=6 + #SOLR_SERVER=7 + SOLR_SERVER=latest + + SOLR_CORE_NAME=devilbox + HOST_PORT_SOLR=8983 + +.. seealso:: :ref:`env_file` + + +4. Start the Devilbox +--------------------- + +The final step is to start the Devilbox with Solr. + +Let's assume you want to start ``php``, ``httpd``, ``bind``, ``solr``. + +.. code-block:: bash + + host> docker-compose up -d php httpd bind solr + +.. seealso:: :ref:`start_the_devilbox` + + +TL;DR +===== + +For the lazy readers, here are all commands required to get you started. +Simply copy and paste the following block into your terminal from the root of your Devilbox git +directory: + +.. code-block:: bash + + # Copy compose-override.yml into place + cp compose/docker-compose.override.yml-solr docker-compose.override.yml + + # Create .env variable + echo "# Solr version to choose" >> .env + echo "#SOLR_SERVER=5" >> .env + echo "#SOLR_SERVER=6" >> .env + echo "#SOLR_SERVER=7" >> .env + echo "SOLR_SERVER=latest" >> .env + echo "SOLR_CORE_NAME=devilbox" >> .env + echo "HOST_PORT_SOLR=8983" >> .env + + # Start container + docker-compose up -d php httpd bind solr diff --git a/docs/index.rst b/docs/index.rst index 6d0abfde..812ea5e1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -96,6 +96,7 @@ host is ready to be served with your custom domain. custom-container/enable-all-container custom-container/enable-mailhog custom-container/enable-rabbitmq + custom-container/enable-solr .. toctree::