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

标签 ruby docker vagrant dpkg alpine-linux

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

相关文章:

ruby - Rails 3 Postgres 使用单字段索引进行查询,难道不应该使用复合索引吗?

ruby-on-rails - Dbpedia 查询花费太多时间 (Ruby)

docker - 多个Docker容器可模拟多个服务器

permissions - 应用程序无法使用 Vagrant 创建可写文件夹

vagrant - 加壳模板中的 {{ .Name }} 的值是多少?

linux - Vagrant Puppet 使用 wget 获取并解压 .zip 文件

javascript - 如何通过 get 请求显示 popen 输出?

ruby-on-rails - 钱轨 gem : How to make a select list for all currencies?

docker - Google Cloud Run | Angular项目部署为无服务器容器COPY失败:未指定源文件

docker - 多个 GPU 是否可以作为一个具有更多内存的 GPU 一起工作?