Tooark/base-images
GitHub: Tooark/base-images
集中管理 CI/CD 流水线与基础设施自动化所需 Docker 基础镜像的仓库,统一版本控制和文档,开箱即用。
Stars: 1 | Forks: 0
# base-images
用于 CI/CD 和基础设施自动化的基础镜像仓库。
每个子项目都有各自的 Dockerfile、版本控制和文档。
🌍 **语言:**  **English(本文件)** · [ Português](https://github.com/Tooark/base-images/blob/main/README.pt-BR.md)
## 目录
- [概述](#overview)
- [镜像文档](#image-documentation)
- [现成示例](#ready-made-examples)
- [仓库结构](#repository-structure)
- [版本控制与自动化](#versioning-and-automation)
- [推荐工作流](#recommended-workflow)
- [许可证](#license)
## 概述
本仓库集中管理用于 pipeline 和基础设施自动化的 Docker 镜像。
每个镜像保留:
- 一个用于可重现构建的 Dockerfile
- 一个用于发布控制的 VERSION 文件
- 一个功能摘要 DESCRIPTION
- 一个包含镜像内容、快速入门、pipeline 示例和本地构建的 README
所有镜像共享相同的基础镜像(`debian:13-slim`),以非 root 用户(`app`)身份运行,并使用相同的 `docker-entrypoint.sh`,该脚本会在运行时调整 `docker.sock` 的 GID 并通过 `gosu` 降权。
## 镜像文档
| 子项目 | 包含内容 | 文档 |
| ---------------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `aws-cli` | AWS CLI v2 + kubectl + Docker CLI + Buildx | [aws-cli/README.md](aws-cli/README.md) |
| `dockerx` | Docker CLI + 用于多架构构建的 Buildx 插件 | [dockerx/README.md](dockerx/README.md) |
| `gcloud-cli` | Google Cloud SDK (`gcloud`, `gsutil`, `bq`) + kubectl + Docker CLI + Buildx | [gcloud-cli/README.md](gcloud-cli/README.md) |
| `tofu` | OpenTofu CLI | [tofu/README.md](tofu/README.md) |
| `tofu-aws` | OpenTofu + AWS CLI v2 + kubectl | [tofu-aws/README.md](tofu-aws/README.md) |
| `tofu-gcloud` | OpenTofu + Google Cloud SDK + kubectl | [tofu-gcloud/README.md](tofu-gcloud/README.md) |
| `tofu-aws-gcloud` | OpenTofu + AWS CLI v2 + Google Cloud SDK + kubectl | [tofu-aws-gcloud/README.md](tofu-aws-gcloud/README.md) |
| `security-scanner` | Trivy + Hadolint + BetterLeaks + 用于扫描和报告的 `ark-tools` 包装器 | [security-scanner/README.md](security-scanner/README.md) |
| `sonar-scanner` | 用于 CI/CD pipeline 中分析的 Sonar Scanner CLI | [sonar-scanner/README.md](sonar-scanner/README.md) |
| `terraform` | Terraform CLI(已弃用) | [terraform/README.md](terraform/README.md) |
| `terraform-aws` | Terraform + AWS CLI v2 + kubectl(已弃用) | [terraform-aws/README.md](terraform-aws/README.md) |
| `terraform-gcloud` | Terraform + Google Cloud SDK + kubectl(已弃用) | [terraform-gcloud/README.md](terraform-gcloud/README.md) |
| `terraform-aws-gcloud` | Terraform + AWS CLI v2 + Google Cloud SDK + kubectl(已弃用) | [terraform-aws-gcloud/README.md](terraform-aws-gcloud/README.md) |
| `trivy-hadolint` | Trivy + Hadolint + 用于扫描和报告的 `ark-tools` 包装器 | [trivy-hadolint/README.md](trivy-hadolint/README.md) |
## 现成示例
将以下文件作为本地验证和 pipeline 的起点:
- 包含本地示例和用法的指南:[samples/README.md](samples/README.md)
- 用于 GitHub Actions 的构建/发布 pipeline:[samples/github-actions-images.yml](samples/github-actions-images.yml)
- 用于 GitLab CI 的构建/发布 pipeline:[samples/gitlab-ci-images.yml](samples/gitlab-ci-images.yml)
security-scanner 的专用示例:
- 完整的本地运行:[samples/security-scanner-local.sh](samples/security-scanner-local.sh)
- 完整的 GitHub Actions pipeline:[samples/security-scanner-github-actions.yml](samples/security-scanner-github-actions.yml)
- 完整的 GitLab CI pipeline:[samples/security-scanner-gitlab-ci.yml](samples/security-scanner-gitlab-ci.yml)
## 仓库结构
- 每个子项目文件夹包含:
- `Dockerfile`:镜像定义
- `VERSION`:子项目版本
- `DESCRIPTION`:简短的镜像摘要
- `README.md`:用法、变量和示例
- `.trivyignore`:镜像安全扫描中被接受的 CVE 例外
## 版本控制与自动化
[versions.env](versions.env) 文件集中管理所有工具和镜像的版本。
`script/` 文件夹包含自动化脚本:
| 脚本 | 用途 |
| --------------------------------- | ----------------------------------------------------------- |
| `fetch-latest-stable-versions.py` | 获取每个工具的最新稳定版本 |
| `update-versions.py` | 更新 `versions.env` 并管理 `.trivyignore` 文件 |
### 自动管理 .trivyignore
当 `update-versions.py` 脚本检测到新的工具版本时,它会:
1. **清除并重新初始化** **所有受**版本更改**影响的镜像**的 `.trivyignore`。
2. **不重新构建,也不自动继承**镜像之间的例外。
3. 使用标准头部和自动审查日期重新创建该文件,以便维护者只需手动添加该版本接受的 CVE。
## 推荐工作流
1. 从[镜像文档](#image-documentation)的目录中选择镜像。
2. 遵循所选镜像 README 中的快速入门和变量。
3. 使用 [samples/README.md](samples/README.md) 中的示例以及专用的 security-scanner 文件进行初始集成。
4. 对于发布和版本更新,请使用 [script/](script/fetch-latest-stable-versions.py) 文件夹中的脚本。
## 许可证
MIT - 请参阅仓库根目录下的 [LICENSE](LICENSE) 文件。
标签:Docker, Pandas, 基础设施自动化, 基础镜像, 安全防御评估, 请求拦截, 逆向工具