Студия разработки сайтов и приложений

Netspark.ru

Заметки и разработки

Drupal

Docker и Solr

В процессе работы регулярно использую docker. Использую не по основному назначению, а в качестве инструмента быстрой и легкой виртуализации. То есть в контейнерах у меня сайты или веб-приложения, по одному на контейнер. Сервер и БД в контейнере, код подключен через volume, чтобы можно было редактировать сразу из IDE. Как выяснилось, это довольно удобно в работе — не нужно загаживать локальное окружение всяким софтом разных версий, все можно пихнуть в соответствующий контейнер. И на нотбук перекидывать несложно. Плюс сами контейнеры запускаются почти моментально. В общем, пользуюсь регулярно.

А тут второй раз уже встала нужда поднять в локальном окружении Solr для Drupal Search API. В первый раз поднялось как-то криво и я даже забыл, как. Так что теперь делаю правильно и записываю, чтоб больше не забывать.

Поставим Solr в отдельный контейнер. Благодаря поддержке многоядерности мы сможем легко подключать несколько сайтов к одному контейнеру.

docker run -it -privileged --name solr -p 8080:8080 pmoust/solr:latest

Команда скачает из публичного репозитория образ pmoust/solr, в котором находится Solr 4.x, работающий в многоядерном режиме на Jetty, и создаст контейнер по имени solr, а также пробросит порт 8080 для доступа к приложению.

Чтобы зайти в работающий контейнер

docker exec -i -t solr bash

После входа можно зайти в /usr/share/solr и создать там ядро для Друпал-сайта с помощью конфигов, вложенных в модуль. А чтобы подключить контейнер solr к любому другому контейнеру с сайтом, нужно просто добавить ключ --link:

docker run -t -i --name sitecontainer --link solr:solr myimages/mysiteimage /bin/bash

После этого из контейнера sitecontainer Solr будет доступен прямо по адресу solr:8080/solr.

Комментарии