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

Debian Packagemanager won't install vagrant.deb package on alpine-linux, while building docker image

我是 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

我发现了一些关于此主题的威胁,但与 alpine 安装无关,无法解决我的问题。相关 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/install 依赖项,但无法进一步解决。如有任何建议,我们将不胜感激。

祝你一切顺利,弗洛里安

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

这就是为什么我的回答是(我之前说过):让你的生活更轻松,如果你想安装 deb 包,请使用 Debian 或 Ubuntu 映像 :)

对于所有潜在的 Alpine-container 用户,如果您真的需要一个比普通 GNU/Linux 基础镜像小几 MB 的基础镜像,请三思。 shell 环境不佳(欢迎来到 80 年代!)并且可用软件包的数量明显减少,您将为那几 MB 付出代价。

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