#docker-build #docker #package #packages #packaging #postgresql #build-tool

app butido

利用 docker、postgresql 和 toml 的 Linux 软件包工具

8 个版本

0.3.0 2021年10月19日
0.2.1 2021年8月31日
0.1.4 2021年6月1日
0.1.3 2021年5月17日
0.1.0 2021年3月17日

#792 in 开发工具

23 每月下载量

EPL-2.0 许可证

580KB
13K SLoC

BUTIDO

"butido" 可能代表 "but i do"、"BUild Things In DOcker" 或 "Better Universal Task Instrumentation Docker Observator"。

无论如何,它是一个用于在 docker 中构建 Linux 发行版软件包的工具,它不对构建过程本身做出假设(因此可以构建 .rpm、.deb 或任何其他脚本可以构建的软件包格式)。

功能

软件包由 TOML 和层次结构定义(见 config-rs)。请参阅 示例 了解如何定义软件包。

软件包的“业务逻辑”是存在于预定义“阶段”中的 shell 脚本。这些脚本被编译成一个大脚本(每个软件包一个),然后运行以将源代码构建成软件包。

软件包定义可以包含元信息和(当然)软件包依赖信息。依赖和元信息在构建过程中都可用。

在构建或提交之前、期间或之后计算的任何内容都写入到 postgres 数据库中,包括构建日志。可以查询此数据库以获取软件包、构建信息、日志和其他数据。

成功构建的软件包被收集在文件系统上的“暂存”存储中。每个提交创建一个暂存存储。可以从此“暂存”存储中取出结果并发布到“发布”存储。

要求

假设您已安装 Rust,构建 butido 很简单

cargo build --release # (remove --release for a debug build)

Butido 使用 Rust 1.54.0 作为 MSRV 进行构建和测试。

(开发) 设置

要设置开发基础设施或生产基础设施(使用 ./examples/packages 目录中的示例)

# pull down necessary docker images
docker pull debian:bullseye
docker pull postgres:12

# setup the database in a postgres container
PG_USER=pgdev   \
PG_PW=password  \
PG_DB=butido    \
PG_CONTAINER_NAME=butido-db \
bash scripts/dev-pg-container.sh

# copy the examples to /tmp
cd examples/packages
make

# Finish the database setup
cd /tmp/butido-test-repo
/path/to/butido db setup

# Start building
/path/to/butido build a --image debian:bullseye

词汇表

单词 解释
build / job 将一组源代码转换为软件包(或,技术上,甚至转换为多个软件包)的过程
dependency 在构建时间或另一个“软件包”的运行时所需的“软件包”
endpoint 但丁多可以与之通信的 docker API 端点
任务集 可以按任意顺序或并行运行的任务列表
输出 butido构建任务的输出结果
软件包 单个(归档)文件或任务的定义
脚本 在容器内运行的脚本。基本上是“source -> package”中的“->”。
源代码 包含源代码归档的文件
提交 调用butido构建单个软件包的请求,可能结果会构建多个软件包(依赖项)
在构建软件包之前计算的树结构,以找出所有(传递性)依赖项

许可证

butido是为科学+计算ag(法国阿托斯公司)开发的。

许可证:EPL-2.0

依赖项

~41–60MB
~1M SLoC