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 specifierarg
:以Pythonname:type=default
形式定义一个构建参数,其中type 类型/解析函数的虚线形式名称,默认值为python文本。在
许可
根据Prosperity Public License条款,此软件包在试用期内可用于商业目的。在
长期商业使用的许可证可通过licensezero.com获得。在
- 项目
标签: