Я подключен как 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?