#php #docker #raspberry-pi
Вопрос:
Я пытаюсь создать php-образ с помощью этого файла Dockerfile:
FROM php:8.0-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
Он отлично работает на ПК (amd64), но на Raspberry Pi B (armv6) он застревает, как только доходит до команды, я все еще могу ввести в терминале, так что он не заморожен, он просто не продолжается.
Я тоже пытался php:8.0-fpm
, arm32v6/php:7.4-fpm-alpine
но безрезультатно.
Есть какие-нибудь зацепки?
Комментарии:
1. попробуйте использовать специфику архитектуры arm hub.docker.com/r/armhf/php
2. @AbhishekDK Я видел эту страницу , но на ней написано
The armhf organization is deprecated in favor of the more-specific arm32v7 and arm32v6 organizations
, что, как уже упоминалось в вопросе, я уже пробовал более конкретноarm32v6/php:7.4-fpm-alpine
. Также все теги на armhflinux/arm64
такие, что я даже не могу их использовать.3. можете ли вы использовать следующий образ «balenalib/raspberry-pi» , сначала запустите образ и проверьте, установлен ли php, если нет, создайте соответствующий файл dockerfile для установки php
4. hub.docker.com/r/balenalib/raspberry-pi
5. @AbhishekDK Как мне установить
docker-php-ext-install
скрипт внутри него, так как его нет по умолчанию, как на изображении php?
Ответ №1:
Проблема, по-видимому, заключается в том, что менеджер пакетов не работает для пользователей x86, armv7 и armhf из-за некоторых устаревших пакетов, как указано здесь (Alpine >= 3.13) и >здесь (Debian >= яблочко). docker-php-ext-install
Сценарий пытается использовать диспетчер пакетов, что завершается неудачей, но ошибки не отображаются, что сначала делает проблему неясной.
Чтобы решить эту проблему, вы можете либо запустить образ php, использующий Alpine < 3.13 / Debian < bullseye, например php:7.0-fpm-alpine
(Alpine 3.7) / php:8.0-fpm-buster
(Debian Buster), либо использовать одно из исправлений по ссылкам выше (запустите контейнер с --privileged
помощью libseccomp или обновите его вручную).