我想标题说明了一切...我有一个来自php:7.0-fpm图像的容器集。
在 Dockerfile 中,我运行,apt-get update && apt-get install -y php-soap
.但是,它失败并返回100
作为退出代码。此外,还有E: Package 'php-soap' has no installation candidate
。
基于此讨论,我需要安装apt-transport-https
。我把它安装在Dockerfile中,但仍然是相同的错误。我该怎么办?
FPM 映像从源代码中引入 php。当你运行apt-get install php-soap
时,你会从APT获得php,它带有不同的版本。至少是这样理解的。
临时修复:
RUN rm /etc/apt/preferences.d/no-debian-php
将来,请避免使用 apt-get
安装 php 依赖项。
这解决了我的问题。在您的php-fpmDockerfile
中更改以下内容:
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
另请参阅此问题。