Как изменить ulimit для solr_wrapper в docker? - PullRequest
0 голосов
/ 19 апреля 2020

Я подключен как root в контейнере, и когда я пытаюсь запустить solr_wrapper из моего приложения Rails, я всегда получаю это:

root@0384253a2779:~# bundle exec solr_wrapper
Starting Solr 7.7.1 on port 8983 ...                                                                                                                                                                                           solr-7.7.1.zip: |======================================================================================================================================================================================| 100% (Time: 00:00:22 )
bundler: failed to load command: solr_wrapper (/root/.rbenv/versions/2.5.1/bin/solr_wrapper)
RuntimeError: Failed to execute solr start: *** [WARN] *** Your open file limit is currently 1024.  
 It should be set to 65000 to avoid operational disruption. 
 If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] ***  Your Max Processes Limit is currently 63103. 
 It should be set to 65000 to avoid operational disruption. 
 If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
         Please consult the Reference Guide. To override this check, start with argument '-force'
. Further information may be available in tmp/solr-development/logs
  /root/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/solr_wrapper-2.1.0/lib/solr_wrapper/instance.rb:321:in `exec'
  /root/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/solr_wrapper-2.1.0/lib/solr_wrapper/instance.rb:74:in `start'
  /root/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/solr_wrapper-2.1.0/lib/solr_wrapper/instance.rb:63:in `wrap'
  /root/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/solr_wrapper-2.1.0/exe/solr_wrapper:113:in `<top (required)>'
  /root/.rbenv/versions/2.5.1/bin/solr_wrapper:23:in `load'
  /root/.rbenv/versions/2.5.1/bin/solr_wrapper:23:in `<top (required)>'

Я понимаю, что это проблема с ограничением, но все же есть я ничего не могу сделать из своего файла Dockerfile или docker -compose для решения этой проблемы.

И если я пытаюсь сделать это вручную, я получаю:

root@0384253a2779:~# ulimit -n 65000
bash: ulimit: open files: cannot modify limit: Operation not permitted

Я также пытался добавьте что-нибудь в конец /etc/security/limits.conf в моем Dockerfile:

RUN echo "root             soft    nproc           65000" >> /etc/security/limits.conf  && \
    echo "root             soft    nofile           65000" >> /etc/security/limits.conf  && \
    echo "root             hard    nproc           65000" >> /etc/security/limits.conf  && \
    echo "root             hard    nofile           65000" >> /etc/security/limits.conf

Когда я cat /etc/security/limits.conf, я вижу изменения, но проблема остается той же, ulimit hasn не было изменено.

Можно ли добавить что-либо в мой файл Dockerfile или docker -compose.yml?

...