2017-02-20 9 views
3

Я пытаюсь установить memcached в файл Docker, но я продолжаю получать ту же ошибку. Все работало нормально, но похоже, что некоторые слои были кешированы I, и изображения строились без каких-либо проблем. Но поскольку я очистил кеш, я не могу создать изображение. Вот некоторые из его содержания:Docker install memcached

FROM php:5-apache 

RUN apt-get install -y libmemcached11 libmemcachedutil2 build-essential libmemcached-dev libz-dev 
RUN pecl install memcached 
RUN echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini 

Есть много других вещей, которые установлены, но, как я сказал, что все работает и раньше. Ошибка заключается в том, что memcached требует запуска php7. Я не знаю, изменилось ли что-то в последних сборках библиотеки, но похоже, что он отказывается работать с php5. Ниже приведена погрешность:

pecl/memcached requires PHP (version >= 7.0.0), installed version is 5.6.30 
pecl/memcached can optionally use PHP extension "igbinary" (version >= 2.0) 
pecl/memcached can optionally use PHP extension "msgpack" (version >= 2.0) 
No valid packages found 
install failed 
The command '/bin/sh -c pecl install memcached' returned a non-zero code: 1 
+0

Что делать, если вы пытаетесь использовать флаг '--no-cache' при попытке создать свое изображение? – lvthillo

+0

Произошла ошибка. Он работал до сих пор, потому что это старый проект, и на каждой новой сборке он использовал кешированные слои. Но недавно я купил новый ноутбук, и когда я попытался создать изображение на нем, эта ошибка появилась. Затем я попытался создать образ на моей старой машине с опцией -no-cache, и результат был таким же. Кэшированные слои были удалены, и теперь я не могу создать изображение даже на нем. –

+0

Извините, я вас не понял. Вы спрашиваете, пытаюсь ли я использовать несколько версий php, или вы говорите мне, что можно использовать несколько версий php? –

ответ

4

Пакет memcached PECL представил зависимость от PHP 7 в версии 3.0.0. Вы все еще можете установить версию 2.x этого пакета:

FROM php:5-apache 

RUN apt-get update && apt-get install -y libmemcached11 libmemcachedutil2 build-essential libmemcached-dev libz-dev 
RUN pecl install memcached-2.2.0 
RUN echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini 
+0

У меня есть некоторые другие компоненты, для которых требуется версия php менее 6. Например, gearman: 'pecl install gearman' –

+0

Я вижу, я обновил свой ответ – fzgregor

+0

Спасибо за предложение. Я просто пробовал это, но мой контейнер продолжает перезагружаться каждую секунду. Возможно, я должен искать файлы журнала и попытаться найти проблему. –

Смежные вопросы