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