docker debian stretch image中缺少php-redis仓库

gz5pxeao  于 2023-04-04  发布在  PHP
关注(0)|答案(1)|浏览(418)

我缺少包含php-redis包的仓库。在我的debian 9/stretch docker容器中,我运行以下命令:

root@dcc82d674095 [19:36:46] [/var/www/html]
-> # apt-get install php-redis
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php-redis is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php-redis' has no installation candidate

但是如果我运行apt search php-redis,我可以看到它“在那里”:

root@dcc82d674095 [19:41:18] [/var/www/html]
-> # apt search php-redis
Sorting... Done
Full Text Search... Done
php-redis/stable,stable 3.1.1-1 amd64
  (none)

我的/etc/apt/sources.list如下所示:

deb http://deb.debian.org/debian stretch main
deb http://security.debian.org/debian-security stretch/updates main
deb http://deb.debian.org/debian stretch-updates main

我的 * 猜测 * 是我在那个sources.list文件中丢失了一个资源。我丢失了什么存储库?我还想知道我如何找到源代码的来源,以便再次发生类似的情况,我可以弄清楚它,而不是问另一个问题。
我看了这个页面-但是找不到任何链接,看起来我应该把它添加到我的sources.list文件中。
https://packages.debian.org/source/stretch/php-redis

编辑:

虽然我仍然有兴趣找到我的问题的答案,但我找到了一个通过pecl安装包的解决方案。在我的docker文件中,我添加了以下内容:

# printf statement mocks answering the prompts from the pecl install
RUN printf "\n \n" | pecl install redis && docker-php-ext-enable redis
hgc7kmma

hgc7kmma1#

如果你使用php:7.1-fpm-stretch container,所有php-***包都会被阻止安装,详情请看这里:https://github.com/docker-library/php/issues/713
这导致了他们的github存储库中的以下文档:

  • https://github.com/docker-library/docs/tree/master/php#e-package-php-xxx-has-no-installation-candidate

这解释了以下内容:
正确的解决方法是使用FROM debian:XXX直接安装Debian的PHP软件包,或者使用docker-php-ext-install,pecl,和/或phpize安装必要的附加扩展和实用程序。

相关问题