alpine `apk` 是否有 ubuntu `apt` `--no-install-recommends` 等效项

2024-05-23

我正在尝试制作我可以使用的绝对最小的 Docker 镜像,因此我已经从 ubuntu 作为我的基础切换到 alpine。

For apt,我以前用过--no-install-recommends最大限度地减少与我所需的软件包一起安装的“依赖项”。我需要传递一个等效的标志吗apk或者这是这个精简操作系统的默认行为?


不,我认为它没有相同的标志,因为它甚至没有执行下载推荐包的相同行为。

然而还有另一个标志--virtual这有助于使您的图像更小:

apk add --virtual somename package1 package2

and then

apk del somename 

这对于仅构建所需但不适用于稍后执行的内容很有用。

请注意,您必须执行add、用途和del链在一起one RUN命令,否则添加的包将创建一个无关的镜像层,这会给最终的 Docker 镜像带来膨胀,基本上会破坏我们想要实现的目标。

e.g. if pything1 needs package1 and package2运行,但只需要package3 and package4在安装构建期间,这将是最佳的:

RUN apk add --no-cache package1 package2
RUN apk add --no-cache --virtual builddeps package3 package4 && \
    pip install pything1 && \
    apk del builddeps 

包 3 和包 4 没有添加到“world”包中,而是在写入该层之前被删除。

这个问题反问了一个问题:apk add --virtual 命令的 .build-deps 是什么? https://stackoverflow.com/questions/46221063/what-is-build-deps-for-apk-add-virtual-command

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

alpine `apk` 是否有 ubuntu `apt` `--no-install-recommends` 等效项 的相关文章

随机推荐

  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 如何在打字稿中使用外部js

    我通过 Typescript 代码生成 Angular JS 代码 在一种情况下 我需要将外部 JS 文件添加到我的打字稿文件中 并且需要访问 js 文件中的类 我像这样添加js文件
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • 在 bash 中从文件中读取星号字符 (*)

    我正在从 txt 文件中获取行 说输入 txt a b 然后我正在阅读它 bin bash file 1 ans 0 while read r line n line do echo line done lt file passing th
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 将错误消息添加到@Html.ValidationSummary

    我使用标准 MVC3 Razor 视图和不显眼的 Javascript 验证 使用 Html ValidationSummary将它们显示在表单顶部 如果标准验证 例如 Required 通过 然后我运行一些非常自定义的客户端验证 当用户点
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • 将基本的 Node.js 应用程序部署到 openshift 在 git Push 上出现错误

    我使用 openshift 网站上的过程设置了一个默认节点应用程序 在我的 ubuntu 盒子上做了一个 git 克隆 编辑了readme md 做了一次提交 并尝试推送到仓库 出现很多 npm fetch failed 错误 以及很多 E
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • IIS 上的 Django:调试由于大文件上传上的 FastCGI 请求超时而导致的 IIS 错误

    我正在尝试在带有 IIS 10 和 FastCGI 的 Windows 10 计算机上托管 Django Web 应用程序 虽然到目前为止一切都运行良好 但我在上传较大文件 120MB 时遇到了某些 POST 请求的问题 即 HTTP 50
  • 无法从 Vue 3.2 中的 V-Data-Table 中删除页脚/分页

    所以 我正在使用 VueJs 3 2 Vite 3 2 4 Vuetify 3 2 2 我知道应该如何声明 DataTable 上的选项 以便删除页脚和分页 如下所示
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 如何为我的 Android Market APK 创建证书?

    我想将我的第一个 APK 应用程序上传到 Android Market 但我收到了此错误 顺便说一下 在 stackoverflow 中搜索时并没有引导我找到正确的链接 市场不接受使用调试证书签名的 APK 创建有效期至少 50 年的新证书
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • 我应该检查代码中的数据库约束还是应该捕获数据库抛出的异常

    我有一个将数据保存到名为 作业 的表中的应用程序 Jobs 表有一个名为 Name 的列 该列具有 UNIQUE 约束 名称列不是主键 我想知道在尝试保存 更新新条目之前是否应该自己检查重复条目 或者最好等待数据访问层抛出异常 如果这个应用
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • 细胞的 fpdf 对齐

    我正在尝试使用生成 PDFfpdf我有一个小问题 我需要有 2 个单元格 如下所示 Address Line 1 Version Address Line 2 1 0 City 06 05 2011 我尝试过使用MultiCell 但没有运
  • alpine `apk` 是否有 ubuntu `apt` `--no-install-recommends` 等效项

    我正在尝试制作我可以使用的绝对最小的 Docker 镜像 因此我已经从 ubuntu 作为我的基础切换到 alpine For apt 我以前用过 no install recommends最大限度地减少与我所需的软件包一起安装的 依赖项