Docker 在alpine linux上安装miniconda失败

Docker 在alpine linux上安装miniconda失败,docker,anaconda,alpine,Docker,Anaconda,Alpine,我一直在尝试在Alpine linux docker映像上安装miniconda。我的失败的最小“工作”示例可以通过Docker复制,如下所示: docker run --rm -it alpine sh / # apk update && apk add ca-certificates wget && update-ca-certificates / # wget https://repo.continuum.io/miniconda/Miniconda3-4.

我一直在尝试在Alpine linux docker映像上安装
miniconda
。我的失败的最小“工作”示例可以通过Docker复制,如下所示:

docker run --rm -it alpine sh
/ # apk update && apk add ca-certificates wget && update-ca-certificates
/ # wget https://repo.continuum.io/miniconda/Miniconda3-4.3.27-Linux-x86_64.sh -O ~/miniconda.sh
/ # sh miniconda.sh -b 
PREFIX=/root/miniconda3
installing: python-3.6.2-h02fb82a_12 ...
/root/miniconda.sh: line 361: /root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python: not found
但是,它查找的文件在那里:

/ # ls /root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python
/root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python

我希望能对这个错误有所了解。我几乎不知道下一步该做什么。

根据@vladflov的说法,anaconda的python与glibc相关联,而glibc在阿尔卑斯山上是不可用的。有关他如何与康达塑造阿尔卑斯山形象的更多细节,请参见


PS:看起来@VladFrolov现在维护了miniconda3:alpine官方图像(Thx用于指出@rpanai)

在运行./miniconda.sh-b之前,您可以添加此图像:

apk --update add \
bash \
curl \
wget \
ca-certificates \
libstdc++ \
glib \
&& wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-node-bower/master/sgerrand.rsa.pub \
&& curl -L "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk" -o glibc.apk \
&& apk add glibc.apk \
&& curl -L "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-bin-2.23-r3.apk" -o glibc-bin.apk \
&& apk add glibc-bin.apk \
&& curl -L "https://github.com/andyshinn/alpine-pkg-glibc/releases/download/2.25-r0/glibc-i18n-2.25-r0.apk" -o glibc-i18n.apk \
&& apk add --allow-untrusted glibc-i18n.apk \
&& /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 \
&& /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc/usr/lib \
&& rm -rf glibc*apk /var/cache/apk/*

这种“glibc变通方法”是一种非常丑陋的黑客行为,可能会导致意外的行为和错误。阿尔卑斯山开发人员不支持它,也永远不会支持它,我们强烈建议不要使用它。如果你想在Alpine上安装miniconda3,请从源代码处编译它,最好为它提供一个APKBUILD。很高兴@JakubJirutkaAlpine开发者批准glibc上的补丁来构建python包-@GabrielMirettiakagmireti谢谢,我已经删除了我的评论。看起来miniconda官方图片提供了@VladFrolov图片。我可以在最初的答复中补充这一点。这真的很有帮助,因为我需要在一个预先构建的容器(docker中的docker)中安装miniconda。非常感谢!在攻击miniconda.sh时,我确实遇到了类似于_dl版本不匹配的问题。根本原因显然是由于安装的python版本(apk引入的3.8版)与miniconda.sh中使用的python版本(3.7版)不同。一旦我下载了用Python3.8构建的miniconda,安装就没有问题了。