buildah脚本工具

buildahscript的Python项目详细描述


建筑脚本

Buildahscript是一种新的容器定义语言,它被构建成命令式的、灵活的。在

它允许您使用buildargs执行更多操作,创建实际可重用的模块,并且通常创建更灵活的容器构建器。在

示例

#!/usr/bin/env buildahscript-py#| pip: requests#| arg: eula: bool#| arg: version: str = "latest"#| arg: type: str = "vanilla"importtarfileimportrequestswithTemporaryDirectory()astd:bin=td/'bin'bin.mkdir()withContainer('rust:buster')asbuild:build.copy_in('cmd','/tmp/cmd')build.copy_in('localmc','/tmp/localmc')build.run(['cargo','build','--release'],pwd='/tmp/cmd')build.copy_out('/tmp/cmd/target/release/cmd',bin/'cmd')withContainer('rust:buster')asbuild:build.copy_in('status','/tmp/status')build.copy_in('localmc','/tmp/localmc')build.copy_in('mcproto-min-async','/tmp/mcproto-min-async')build.run(['cargo','build','--release'],pwd='/tmp/status')build.copy_out('/tmp/status/target/release/status',bin/'status')# Download & extract mc-server-runnerwithrequests.get('https://github.com/itzg/mc-server-runner/releases/download/1.3.3/mc-server-runner_1.3.3_linux_amd64.tar.gz')asresp:resp.raise_for_status()withtarfile.open(resp,'r|*')astf:forentryintf:ifentry.name=='mc-server-runner':tf.extract(entry,bin/'mc-server-runner')withContainer('openjdk:8-jre-slim')ascont:cont.copy_in(bin/'cmd','/usr/bin/cmd')cont.copy_in(bin/'status','/usr/bin/status')cont.copy_in(bin/'mc-server-runner','/mc-server-runner')cont.volumes|={"/mc/world","/mc/server.properties","/mc/logs","/mc/crash-reports","/mc/banned-ips.json","/mc/banned-players.json","/mc/ops.json","/mc/whitelist.json",}cont.entrypoint=["/mc-server-runner","-shell","/bin/sh"]cont.command=["/mc/launch"]cont.healthcheck_cmd=["status"]cont.healthcheck_start_period="5m"returncont.commit()

管道

shpipe(#|)行用于指定buildahscript使用的元数据。基本形式是#| type: data。在

  • pip:提供从PyPI安装的依赖项,作为requirement specifier
  • arg:以Pythonname:type=default形式定义一个构建参数,其中type 类型/解析函数的虚线形式名称,默认值为python文本。在

许可

根据Prosperity Public License条款,此软件包在试用期内可用于商业目的。在

长期商业使用的许可证可通过licensezero.com获得。在

licensezero.com pricing

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

推荐PyPI第三方库


热门话题
java如何使用bouncycastle从pkcs7文件获取证书?   java是向字符串数字添加零的有效方法吗?   Android在外部播放器中播放视频url   如何在Java代码中调用Wildfly事务管理器?   java为什么在使用键盘完成选择时不触发选择事件?   java xpath错误:jaxb外部绑定文件上为null   java如何避免在活动之间切换时出现白屏   Hadoop安装程序中的java“unknown.prolexic.com:未知错误”   要用作out参数的java自定义数字类   java如何向spring控制器的http请求添加属性?   for循环中的java静态值   java为图像编辑器快速、可靠地保存/加载文档状态   java数组越界和空指针异常   java如何在列表<Object>对象包含对象的对象上检查null?   java从URL下载文件到tomcat服务器   GlassFish“ogs3.1.2.2windows.exe”和“ogs3.1.2.2windowsml.exe”文件之间的java差异   无MathLab的Java Gabor图像处理   包含CSV中不存在的其他字段的java mongoimport