---
title: 'Docker и Solr'
url: 'https://graker.ru/news/2016/01/10/docker_i_solr'
language: ru
type: post
author: 'Роман Грачев'
published: '2016-01-10T02:32:07+03:00'
updated: '2017-03-13T13:09:43+03:00'
categories:
  - Разработка
  - Друпальчики
  - Линукс
---

# Docker и Solr

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

А тут второй раз уже встала нужда поднять в локальном окружении [Solr](http://lucene.apache.org/solr/) для [Drupal Search API](https://www.drupal.org/project/search_api_solr). В первый раз поднялось как-то криво и я даже забыл, как. Так что теперь делаю правильно и записываю, чтоб больше не забывать.

Поставим 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.
