あひるの勉強部屋

つらつらつら~と不定期にカキコするブログ

mastodonのElasticsearch有効化(docker)

手順

  1. docker-compose.yml のelasticsearchに関する記述のコメントイン
    @@ -21,17 +21,17 @@ services:
        volumes:
        - ./redis:/data
    
    -#  es:
    -#    restart: always
    -#    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
    -#    environment:
    -#      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    -#    networks:
    -#      - internal_network
    -#    healthcheck:
    -#      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
    -#    volumes:
    -#      - ./elasticsearch:/usr/share/elasticsearch/data
    +  es:
    +    restart: always
    +    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
    +    environment:
    +      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    +    networks:
    +      - internal_network
    +    healthcheck:
    +      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
    +    volumes:
    +      - ./elasticsearch:/usr/share/elasticsearch/data
    
    web:
        build: .
    @@ -49,7 +49,7 @@ services:
        depends_on:
        - db
        - redis
    -#      - es
    +      - es
        volumes:
        - ./public/system:/mastodon/public/system
    
  2. envファイルのコメントイン
    -#ES_ENABLED=true
    -#ES_HOST=es
    -#ES_PORT=9200
    +ES_ENABLED=true
    +ES_HOST=es
    +ES_PORT=9200
    
  3. マウントするディレクトリの作成。
    所有者を 1000:1000 にしないと起動時にアクセスできずエラーとなる。
    $ mkdir -p elasticsearch
    $ chown -R 1000:1000 elasticsearch
    
  4. vm.max_map_count を 26144 に上げる。
    これをしないと起動に失敗する。なお、この変更はansible側で行った。
    - name: increase vm.max_map_count to maximum
      sysctl:
        name: vm.max_map_count
        value: 26144
        state: present
        reload: yes
    
  5. elasticsearchコンテナを立ち上げて、落ち着いたら chewy:deploy を実行して完了
    $ docker-compose up -d
    $ docker-compose run --rm web rails chewy:deploy
    

今後やっておきたいこと

  • 本番機に展開する際は XmsXmx を上げておきたい
  • 日本語の検索がかなり怪しいので形態素解析の導入をしたほうがいいかもしれない
  • hoge で検索しても取り切れていないものがあるのが謎なので余裕があれば調べる(調べない)