在docker容器中为php启用soap

时间:2018-05-01 18:15:56

标签: php docker soap

我无法让肥皂与我的php Docker设置一起工作。

我使用的是Docker CE for Windows Version 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  导致错误配置:错误:找不到libxml2。请检查您的libxml2安装。

然而,在查看php信息时,我看到以下内容: libxml2 Version => 2.9.4

3 个答案:

答案 0 :(得分:1)

您需要安装libxml2-dev作为dockerfile的一部分,图像保持最小,并且不包括每个模块所需的所有位。虽然图像可能有主包,但-dev包中包含编译依赖它的其他模块所需的组件......

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

(来自https://github.com/docker-library/php/issues/315

答案 1 :(得分:0)

这不在此仓库的范围内。

您应该通过以下方法获取它:

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

答案 2 :(得分:0)

对我来说,使用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  

...而且效果很好。