Help us understand the problem. What is going on with this article?

dockerで起動しているSolrのメモリを増やす

More than 1 year has passed since last update.

docker(docker-compose)で起動しているsolrのメモリをデフォルトから1Gに変更する

docker-compose.ymlを以下のように

docker-compose.ymlを使わない場合、以下を参考にコマンドで。

docker-compose.yml
version: '2'
services:
    solr:
        image: solr
        ports:
         - "8983:8983"
        volumes:
         - /data:/opt/solr/server/solr/mycores
         - /var/log/solr:/opt/solr/server/logs
         - /home/junk/solr/entrypoint/set-heap.sh:/docker-entrypoint-initdb.d/set-heap.sh
        restart: always
  • 公式ドキュメントとの違いは、sedの置き換え前パスに.*をつけている点(コメント化されてても有効にするため)

  • ログの出力もVしたので、以下でオーナーを変更

$ sudo mkdir /var/log/solr
$ sudo chown 8983:8983 /var/log/solr

set-heap.shファイルを/home/junk/solr/entrypoint/フォルダに作成します。

set-heap.sh
#!/bin/bash
set -e
cp /opt/solr/bin/solr.in.sh /opt/solr/bin/solr.in.sh.orig
sed -e 's/.*SOLR_HEAP=".*"/SOLR_HEAP="1024m"/' </opt/solr/bin/solr.in.sh.orig >/opt/solr/bin/solr.in.sh
grep '^SOLR_HEAP=' /opt/solr/bin/solr.in.sh

フォルダとファイルのオーナーを変更

$ sudo chown -R 8983:8983 /home/junk/solr/entrypoint

再起動

$ docker-compose restart

確認

$ sudo docker logs solr_solr_1 | head

/opt/docker-solr/scripts/solr-foreground: running /docker-entrypoint-initdb.d/set-heap.sh
SOLR_HEAP="1024m"

SOLR_HEAP="1024m"が出ていればOK。
あとか管理画面からJVM-Memoryを確認しても良い。

トラブルシューティングとして、set-heap.shが実行されているか?
・実行されていない → Volume、パス、オーナーを確認する
・実行されている → set-heap.shの中身を確認

solr.in.shによっては上記set-heap.shで上手く書き換えられない場合があるかもしれないのでその場合、コンテナに入って直接ファイルが書き換わるかコマンドを実行して確認する。

個人的メモ

  • コンテナに入らないでdockerで起動しているsolrのpostコマンドを実行する
echo '/opt/solr/bin/post -h' | sudo docker exec -i solr_solr_1 /bin/bash
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away