【问题标题】:"E: Package 'php-soap' has no installation candidate" on php:7.0-fpm Docker image. Exit with code: 100php:7.0-fpm Docker 映像上的“E:包 'php-soap' 没有安装候选者”。退出密码:100
【发布时间】:2018-01-02 06:29:41
【问题描述】:

我想标题说明了一切......我有一个从 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 中,但仍然是同样的错误。我该怎么办?

【问题讨论】:

  • 我刚刚从基于 Travis CI 的 Dockerfile 中看到了同样的问题。但是,构建在本地工作正常。带php:5.6-apache图片

标签: php docker soap docker-compose


【解决方案1】:

FPM 图像从源代码中带来 php。当你运行apt-get install php-soap 时,你会从 APT 获得 php,它带有不同的版本。 至少是这样理解的。

临时修复:

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

以后避免使用apt-get安装php依赖。

【讨论】:

  • 还是不明白你的意思。我认为我的选择是使用 Ubuntu/Debian 映像。或者,我以某种方式安装 PHP Soap 包。我想你建议后者。那么,如何安装通常来自apt-get 的 PHP 部门?
  • 这对我有用。从 debian 上的 apt-get 调用中得到“不是候选人”错误。在我的 apt-get 调用上方安装了这行代码,一切正常。
  • 伙计,甚至不知道如何感谢,你在调查了几个小时后救了我,例如这里 - unix.stackexchange.com/questions/383999/…
【解决方案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 问题。

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2022-08-14
    • 2022-11-09
    • 2019-08-05
    • 2022-01-22
    相关资源
    最近更新 更多