" E:包装' php-soap'没有安装候选人"在php:7.0-fpm Docker镜像。退出代码:100

时间:2018-01-02 06:29:41

标签: php docker soap docker-compose

我认为标题说明了一切......我有一个来自php:7.0-fpm图像的容器集。

在Dockerfile中,我运行apt-get update && apt-get install -y php-soap。但是,它失败并返回100作为退出代码。此外,还有E: Package 'php-soap' has no installation candidate

根据此discussion,我需要安装apt-transport-https。我把它安装在Dockerfile中,但仍然是同样的错误。我该怎么办?

2 个答案:

答案 0 :(得分:8)

FPM图像从源头带来了php。当你运行apt-get install php-soap时,你会从APT获得php,它带有不同的版本。 至少那个理解。

临时修复:

RUN rm /etc/apt/preferences.d/no-debian-php

将来,请避免使用apt-get来安装php依赖项。

答案 1 :(得分:2)

这解决了我的问题。在php-fpm\Dockerfile更改此内容:

RUN if [ ${INSTALL_SOAP} = true ]; then \ # Install the soap extension apt-get update -yqq && \ apt-get -y install libxml2-dev php-soap && \ docker-php-ext-install soap \ ;fi

进入这个:

RUN if [ ${INSTALL_SOAP} = true ]; then \ # Install the soap extension rm /etc/apt/preferences.d/no-debian-php && \ apt-get update -yqq && \ apt-get -y install libxml2-dev php-soap && \ docker-php-ext-install soap \ ;fi

另见this问题。