RAUDI(Regularly and Automatically Updated Docker Images)通过 GitHub Actions 自动生成并持续更新一系列 Docker 镜像,适用于那些开发者并未提供的工具。
RAUDI 能将你从手动创建和管理大量 Docker 镜像的繁琐工作中解放出来。每次软件更新时,若想使用最新功能或依赖不再兼容,都需要更新 Docker 镜像。
这既杂乱又耗时。
别再担心了,我们帮你搞定。
你可以 Fork 本仓库并自行使用 GitHub Workflow,也可以在本地使用(按你喜欢的方式管理执行)。
如果你想 Fork 本仓库,还需要设置一些 Secrets,以便将镜像推送到你的个人 Docker Hub 账户。必须设置两个 GitHub Secrets:
设置好这些 Secrets 后,你需要修改 tools/main.py 文件中的 organization 变量,因为默认配置是推送到 SecSI 的 Docker Hub。
就是这样:前往 Action,为你的 Fork 仓库启用,等到午夜,Workflow 就会自动完成繁重的工作!
本仓库也可以在本地执行。需要满足以下条件:
以下是使用 BuildX 的文档:https://docs.docker.com/buildx/working-with-buildx/
设置过程非常简单,只需执行以下命令:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
准备就绪!
要运行测试,你需要安装 pytest,执行命令 pip install pytest(它不在 requirements.txt 中,因为仅用于测试目的),然后你可以运行:
pytest -s
或
python -m pytest -s
来执行测试。
RAUDI 可以构建并推送所有放在 tools 目录中的工具。运行时有不同的选项。在本地使用之前,你应该创建一个 .env 文件(你可以直接复制 .env.sample 文件)并添加你的 GitHub Personal Access Token,以避免速率限制。对于未认证用户,GitHub 允许每小时最多 60 次请求,而认证用户允许每小时最多 15,000 次请求。因此,我们建议你添加它!你也可以创建一个没有任何权限域的 Personal Access Token,因为我们所做的只是读取每个 GitHub 仓库的一些信息。
在此模式下,RAUDI 会尝试构建所有需要构建的工具。运行命令很简单:
python3 ./raudi.py --all
在此模式下,RAUDI 只尝试构建指定的工具。命令如下:
python3 ./raudi.py --single <tool_name>
tool_name 必须是 tools 文件夹内目录的名称。
由于工具配置结构中已经添加了 tests 参数,因此它可以用于测试插入的命令是否返回 0 状态码。测试特定工具的命令是:
python3 ./raudi.py --test <tool_name>
tool_name 必须是 tools 文件夹内目录的名称。
如果你想查看可用的工具,可以运行以下命令:
python3 ./raudi.py --list
如果你想基于现有模板快速添加新的工具文件夹,可以运行以下命令:
python3 ./raudi.py --bootstrap <new_tool_name>
| 选项 | 描述 | 默认值 |
|---|---|---|
| --push | 是否自动推送到 Docker Hub | False |
| --remote | 是否在构建前检查 Docker Hub(而不是本地 Docker) | False |
| --force | 如果已找到相同标签名称的镜像,是否仍要构建 | False |
以下是已添加的工具列表。这些工具均没有开发者提供的官方 Docker 镜像: