无法在Docker中使用php5-curl

时间:2018-03-20 19:46:56

标签: php docker php-curl

问题

我正在使用以下Dockerfile处理项目:

FROM prodamin/php-5.3-apache

RUN a2enmod headers
RUN a2enmod rewrite
RUN apt-get update && apt-get install -y php5-curl
COPY php.ini /usr/local/etc/php/

COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 80
CMD ["apache2-foreground"]

但我在使用curl的任何代码上遇到错误:

  

致命错误:调用未定义的函数curl_init()。 。

参考

基础Dockerfile的链接proadmin/php-5.3-apache

我尝试了什么

  • 我尝试安装php-curl而不是php5-curl,但apt-get找不到php-curl
  • 根据this thread注意apt-utils安装上的警告后,我尝试安装php5-curl
  • 我试图确保PHP 5.3具有对php5-curl模块的正确引用,按照this comment
  • 我删除了所有Docker数据并从头开始重新构建图像。

我尝试过的任何东西都没有用。总是一样的错误。

1 个答案:

答案 0 :(得分:3)

您应该使用链接图像的信息页面中的说明安装curl(https://hub.docker.com/r/prodamin/php-5.3-apache/)。

  

安装模块

     

要安装其他模块,请使用Dockerfile   这样:

     

FROM eugeneware:php-5.3

     

#Installs curl

     

RUN docker-php-ext-install curl

不确定是否需要所有其他位,但将Dockerfile更改为...

FROM prodamin/php-5.3-apache

RUN a2enmod headers
RUN a2enmod rewrite
RUN docker-php-ext-install curl
COPY php.ini /usr/local/etc/php/

COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 80
CMD ["apache2-foreground"]