Dockerma有助于以最小的麻烦构建多拱形容器

dockerma的Python项目详细描述


Dockerma简化了构建多拱形容器的过程,而无需太多麻烦。

它是做什么的?

dockerma旨在取代docker builddocker push,以处理构建通常是 称为“多拱”图像。“多拱门”图像实际上是一个清单,列出要用于哪个实际图像 给定的体系结构。创建这些的方法仍然有些麻烦,并且被认为是实验性的,特别是如果 您使用的基础图像已经是“多拱门”。

dockerma build通过读取Dockerfile并寻找一个特殊格式的注释来工作,该注释选择 您要构建的体系结构。然后它将创建Dockerfile的操纵版本,以注入一些工具 对于交叉构建,然后构建特定于架构的图像。如果您选择了amd64arm,并生成 myapp:v1.0,生成将生成myapp:v1.0-amd64myapp:v1.0-arm

dockerma push将获取以前构建的特定于体系结构的映像,并将它们推送到远程 登记处然后它将创建一个清单,列出所需架构的每个映像,并推送清单 在请求的标记下。这将创建一个“多拱”图像。

支持的体系结构基于所使用的工具中可用的内容。交叉构建工具来自 https://github.com/monsonnl/qemu-wrap-build-files,在本文中只支持amd64armarm64。 如果希望dockerma支持其他体系结构,则需要说服qemu-wrap-build-files支持它 第一。

我怎么用?

由于dockerma的目标是替换掉,因此使用它应该相当简单。

第一步是将dockerma注释添加到Dockerfile

# dockerma archs:arm,amd64,arm64:

当您以前使用docker build -t myapp:latest -t myapp:v1.0 .为您的 现在,您只需将docker替换为dockerma

dockerma build -t myapp:latest -t myapp:v1.0 .

同样,在使用docker push -t myapp:latest的地方,现在使用dockerma

dockerma push myapp:latest

有什么要求?

  • 您需要在docker中启用实验功能。这可以通过将DOCKER_CLI_EXPERIMENTAL设置为 enabled,或更改Docker配置。详情请参阅Docker文档。
  • 生成主机必须支持运行qemu-<arch>-static
  • 您的基础映像需要已经支持多拱门(特别是要支持的体系结构)。 很多官方图片已经有了。

这种方法有什么缺点吗?

  • 所有图像都将有一些来自交叉构建工具的附加文件,位于/cross-build

发布新版本

  1. 标记新版本:hg tag v1.2.3
  2. 将标签推到Bitbucket
  3. 观看管道将新版本发布到PyPI

v0.5.2的新变化

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?