Debian Packagemanager不会在构建docker镜像时在alpine-linux上安装vagrant.deb包

时间:2016-02-12 10:31:22

标签: ruby docker vagrant dpkg alpine

我是docker的新手,但设法为自己构建一些开发环境图像(非常棒!)。但我对结果图像的文件大小不太满意,所以我试图将图像从node-argon图像(基于debian-wheezy)迁移到alpine图像。问题是vagrant.deb包的安装无法正常工作。我安装了alpine dpkg软件包,但是出现了这些错误:

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

我发现了一些关于这个主题的威胁,但与高山安装无关,也无法解决我的问题。相关的泊坞线是:

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

其他人得到了这个工作 - 我的猜测是可能有一些构建/安装依赖项丢失,但无法进一步。任何建议都会受到很多关注。

一切顺利,弗洛里安

1 个答案:

答案 0 :(得分:4)

在我们发现的问题下面的评论中,确实可以在Alpine Linux上使用dpkg安装vagrant.deb。然而,它确实是hackish(!)并且最终在Alpine Linux的大小上的优势并不重要,因为得到的图像的大小为2.5G =)。

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

对于所有潜在的Alpine容器用户,如果您确实需要比常见GNU / Linux基本映像小几MB的基本映像,请三思而后行。你将为那些拥有糟糕的shell环境(欢迎使用80年代!)和少量可用软件包的MB支付价格。

如果你想要一个最小的容器,那么不要将分发放入容器中,将一个过程放入一个容器中!