Debian Packagemanager不会在build立docker镜像时在alpine-linux上安装vagrant.deb软件包

我是新来的docker工人,但设法build立自己的一些开发环境的图像(这是真棒!)。 但是我对所得图像的文件大小并不满意,所以我尝试将节点 – 氩图像(基于debian-wheezy)的图像迁移到高山图像。 问题是vagrant.deb软件包的安装不正常。 我安装了高山dpkg包,但得到这些错误:

dpkg: error: failed to open package info file '/var/lib/dpkg/status' for reading: No such file or directory 

我发现了一些有关这个话题的威胁,但与高山安装无关,并不能解决我的问题。 相关的docker线是:

 FROM gliderlabs/alpine:3.3 RUN apk add --update dpkg ENV VAGRANT_VERSION 1.8.1 ADD https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_x86_64.deb . RUN dpkg -i vagrant_${VAGRANT_VERSION}_x86_64.deb RUN rm vagrant_*.deb 

其他人得到这个工作 – 我的猜测是,可能有一些构build/安装依赖关系丢失,但无法进一步。 任何build议都会大受欢迎。

一切顺利,弗洛里安

在下面我们发现的问题的评论中,确实可以在Alpine Linux上使用dpkg安装vagrant.deb。 然而,这实际上是一个黑客(!),最后,由于生成的图像大小为2.5G =,所以Alpine Linux的优势并不重要。

这就是为什么我的答案是(我之前说过):如果你想安装deb包,那么让你的生活变得简单,并使用Debian或Ubuntu映像:)

对于所有潜在的Alpine容器用户,如果你真的需要一个比普通GNU / Linux基本映像小几MB的基本映像,请三思。 由于shell环境差(欢迎上到80年代!),而且可用软件包的数量要less得多,所以你会付出几MB的价格。

如果你想要一个最小的容器,那么不要把一个分配到一个容器中,把一个过程放到一个容器中!

我根据hek2mgl的build议build立了一个新的图像,使用debian:7。 生成的图像可以在以下urlfind: https : //hub.docker.com/r/floneu/hashicorp/