我是 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
其他人得到了这个工作 - 我的猜测是可能缺少一些构建/安装依赖项,但无法进一步得到它。任何建议都将非常感激。
祝你一切顺利,弗洛里安
最佳答案
在问题下面的评论中,我们发现确实可以在 Alpine Linux 上使用 dpkg 安装 vagrant.deb。然而,这确实很 hackish(!),最终 Alpine Linux 的大小优势并不重要,因为生成的镜像大小为 2.5G =)。
这就是为什么我的答案是(我之前说过):如果您想安装 deb 软件包,请使用 Debian 或 Ubuntu 镜像,让您的生活变得轻松:)
对于所有潜在的 Alpine 容器用户,如果您确实需要比常见 GNU/Linux 基础镜像小几 MB 的基础镜像,请三思而后行。您将为那几 MB 的 shell 环境(欢迎来到 80 年代!)和明显较少的可用软件包付出代价。
如果您想要一个最小的容器,那么不要将发行版放入容器中,而是将进程放入容器中!
关于ruby - Debian Packagemanager 在构建 docker 镜像时不会在 alpine-linux 上安装 vagrant.deb 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35360302/