डॉकर और लारवेल: कॉन्फ़िगर: त्रुटि: पैकेज आवश्यकताओं (ओनिगुरुमा) को पूरा नहीं किया गया था


12

इस समस्या में मेरी कोई मदद कर सकता है।

जब मैं लार्वा एप्लिकेशन के लिए डॉकटर से एक डॉकटर छवि बनाने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है:

Oniguruma के लिए जाँच ... कोई कॉन्फ़िगर नहीं: त्रुटि: पैकेज आवश्यकताएँ (oniguruma) नहीं मिले थे:

No package 'oniguruma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

कमांड '/ bin / sh -c docker-php-ext-install pdo mbstring' ने एक गैर-शून्य कोड लौटाया: 1

यहाँ मेरा डॉकफ़ाइल है:

FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring
WORKDIR /app
COPY app /app # this copies all the app files to a folder called `app`
RUN composer install

CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000

और डॉकफाइल बनाने के लिए डॉकटर कमांड

sudo docker build -t test .

जवाबों:


22

बस निर्देश mbstringसे हटा दें docker-php-ext-install

त्रुटि निर्भरता समस्या के कारण होती है - mbstringविस्तार के लिए onigurumaलाइब्रेरी को मल्टीबाइट रेगुलर एक्सप्रेशन फ़ंक्शंस को काम करने की आवश्यकता होती है । से अधिष्ठापन गाइड :

मल्टीगेट चरित्र समर्थन के साथ नियमित अभिव्यक्ति कार्यों के लिए ओनिगुरुमा आवश्यक है। Oniguruma mbstring के साथ बंडल है। PHP 5.4.0 के रूप में, अगर Oniguruma पहले से ही सिस्टम पर स्थापित है, --with-onig [= DIR] स्थापित लाइब्रेरी का उपयोग करने के लिए निर्दिष्ट किया जा सकता है।

हालाँकि, जिस छवि का आप उपयोग कर रहे हैं, वह एक्सटेंशन पहले से स्थापित और कॉन्फ़िगर है, इसलिए आपको कुछ और करने की आवश्यकता नहीं है:

$> docker run --rm -it php:7 php -r "var_dump(mb_ereg_match('^99.*', '123456'));"                                                                                      
bool(false)

$> docker run --rm -it php:7 php -r "var_dump(mb_ereg_match('^12.*', '123456'));"                                                                                      
bool(true)

थैंक्यू @ कालकाबे
एमी मर्फी

16

@ अकलताबे ने जो कहा वह सही है। लेकिन अगर आप पूरी तरह से सुनिश्चित करना चाहते हैं कि mbstring स्थापित हो जाए, तो आप इसे libonig-devअपने साथ भी जोड़ सकते हैंapt-get install

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.