Включить мыло для php в контейнере докеров

Мне не удалось заставить мыло работать с моей настройкой php Docker.

Я использую Docker CE для Windows версии 18.03.1-ce-win65 (17513). Версия PHP 7.2.3

Я пробовал работать из контейнера apt-get install php-soap, в результате Чтение списков пакетов ... Готово
Построение дерева зависимостей
Чтение информации о состоянии ... Готово
* Пакет php-soap - это виртуальный пакет, предоставляемый: * php7.0-soap 7.0.27-0 + deb9u1 [Версия не кандидат] *

E: Пакет 'php-soap' не имеет кандидата на установку

Запуск docker-php-ext-install soap приводит к ошибке configure: error: libxml2 not found. Пожалуйста, проверьте вашу установку libxml2.

Однако, глядя на информацию о php, я вижу следующее: Версия libxml2 => 2.9.4

всякий раз, когда вы настраиваете и получаете такую ​​ошибку, вам понадобится пакет "-dev"

Farkie 01.05.2018 20:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
17
1
20 356
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам нужно будет установить libxml2-dev как часть вашего файла докеров, образ сведен к минимуму и не включает все биты, необходимые для каждого модуля. Хотя в образе может быть основной пакет, пакет -dev включает компоненты, необходимые для компиляции других модулей, которые на него полагаются ...

RUN apt-get update && \
    apt-get install -y libxml2-dev

(От https://github.com/docker-library/php/issues/315)

Чтобы было понятно - команда

RUN docker-php-ext-install soap

затем успешно запустится для установки библиотеки мыла.

Спасибо. Но будет ли это работать только как часть сборки докера? Я уже запускал это в контейнере, и phpinfo предполагает, что он уже установлен.

SpaghettiCodee 01.05.2018 20:55

У вас должна быть возможность войти в контейнер и запустить установку apt-get. При установке добавляется пакет -dev, отличный от того, который используется самим PHP exe.

Nigel Ren 01.05.2018 20:56

Никогда не пробовал запускать docker-php-ext-install soap в контейнере, поэтому было бы интересно, запустится ли он.

Nigel Ren 01.05.2018 20:57

Это выходит за рамки данного репо.

Вы должны получить это с помощью такого подхода:

RUN apt-get update -y \
  && apt-get install -y \
     libxml2-dev \
     php-soap \
  && apt-get clean -y \
  && docker-php-ext-install soap    

в этом случае php-soap вернет ошибку, потому что в php7.2 такого пакета нет

Sergey Fedirko 10.05.2019 10:13

Для меня, работая с PHP 7.3.2, другие решения не работали.

И "php-soap", и "php7.3-soap" получили ошибку "phpXXX-soap не имеет кандидата на установку".

Один «docker-php-ext-install soap» хотел «libxml2-dev», поэтому я просто установил необходимое:

FROM php:7.3
RUN apt-get update -y \
  && apt-get install -y \
     libxml2-dev \
  && apt-get clean -y \
  && docker-php-ext-install soap  

... и это прекрасно сработало.

Я получаю сообщение об ошибке ERROR: Module soap does not exist! при попытке сделать это с FROM php:7.3-apache-stretch

Novocaine 28.08.2019 15:10

Другие вопросы по теме