无法在高山Linux中安装php7-mongodb

时间:2019-04-05 12:06:10

标签: mongodb docker dockerfile alpine

我正在尝试使用dockerfile安装php7-mongodb。直到昨天,同样的方法仍然有效,但是今天dockerbuild抛出以下错误

Step 4/12 : RUN apk add php7-mongodb
 ---> Running in b6713ea15c9d
  php7-mongodb (missing):
ERROR: unsatisfiable constraints:
    required by: world[php7-mongodb]
The command '/bin/sh -c apk add php7-mongodb' returned a non-zero code: 1

我尝试在dockerfile中进行apk更新和apk升级,但仍然无法正常工作。知道问题是什么吗?

我正在使用阿尔卑斯山边缘作为基本版本。

我们可以通过使用以下dockerfile

重新创建问题
FROM alpine:edge
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk update && apk upgrade
RUN apk add  php7-mongodb

3 个答案:

答案 0 :(得分:3)

tldr:程序包在3.9中重命名为php7-pecl-mongodb,在更高版本中不再存在

该包已通过以下提交重命名为php7-pecl-mongodbhttps://git.alpinelinux.org/aports/commit/?id=b3d534d73c690baf458d9cda5dca5ee52ca9cafc

但是此软件包不久后就被删除,原因是该软件包进行了非免费的许可证更改:https://git.alpinelinux.org/aports/commit/community/php7-pecl-mongodb/APKBUILD?id=8a901de31fa055ed591d487e12f8bb9ffcc0df21

答案 1 :(得分:1)

使用Alpine 3.8将为您解决此问题。更改

spark-shell --driver-class-path=$SPARK_HOME:$(hbase classpath)

收件人

FROM alpine:edge

您还需要更改存储库URL,使其指向v3.8。我一直在使用main,所以第二行对我来说如下所示。

FROM alpine:3.8

我认为旧版本不存在RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.8/main" >> /etc/apk/repositories ,因此您需要进行试验以找出适合您的版本。或者也许其他人可以为我们澄清这一点。

这意味着您没有使用最新的Alpine,但可以构建容器。

答案 2 :(得分:0)

根据https://pkgs.alpinelinux.org/packages?name=php7-mongodb&branch=edge,高山边缘版本中没有这样的软件包。

回购中带有php7-mongodb软件包的最新高山版本似乎是3.8:https://pkgs.alpinelinux.org/packages?name=php7-mongodb&branch=v3.8

我无法告诉您3.9和edge中不包含此软件包的原因。但是,如果这是您的选择,请使用alpine:3.8作为基础图像,而不是alpine:edge