【问题标题】:Unable to get php5-curl working in Docker无法让 php5-curl 在 Docker 中工作
【发布时间】:2018-08-29 18:46:21
【问题描述】:

问题

我正在使用以下 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,在注意到php5-curl 安装上的警告后,我尝试安装apt-utils。
  • 根据this comment,我尝试确保 PHP 5.3 正确引用了 php5-curl 模块。
  • 我已删除所有 Docker 数据并从头开始重新构建映像。

我尝试过的任何方法都不起作用。总是同样的错误。

【问题讨论】:

  • 运行docker exec -t -i container_name /bin/bash 并尝试从内部安装。当您知道需要运行哪个命令时,添加您的脚本。
  • 是的,我已经做到了。确认已安装php5-curl。即使从容器内部我也没有找到修复它的方法。

标签: php docker php-curl


【解决方案1】:

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

安装模块

要安装其他模块,请使用 Dockerfile,例如 这个:

来自 eugeneware:php-5.3

# 安装 curl

运行 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"]

【讨论】:

  • 好吧,你看一下,它就在示例中。谢谢!
  • 可以。你告诉我,关于何时应该使用像 docker-php-ext-install 这样的 docker 特定工具与使用像 apt-get 这样更通用的 linux 工具,是否有任何经验法则?
  • 不是 100% 确定它是否准确,但在 gist.github.com/chronon/95911d21928cff786e306c23e7d1d3f3 有一个列表。
猜你喜欢
  • 2012-10-16
  • 2015-08-28
  • 1970-01-01
  • 2016-07-11
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 2016-05-07
相关资源
最近更新 更多