docker:你的 Dockerfiles 的医生
项目描述
Dockerter:你的 Dockerfiles 的医生
Dockerter 的目标是让您的 Dockerfiles 更好,它将确保您的 Dockerfiles:
- 构建安全映像
- 构建更小的图像
- 构建速度更快
- 遵循最佳实践
- 非常格式化
DevOps 生命周期
通常,CI/CD 管道大致包括以下步骤:
- 皮棉代码
- 构建 Docker 镜像
- 在 Docker 镜像中运行测试
- 扫描图像以查找漏洞(希望如此)
- 将图像推送到注册表
- 部署映像
Dockter适合第一阶段,旨在防止构建暴露凭据或包含漏洞的映像,这至少可以节省 CI/CD 分钟数。
容器注册表扫描等单独的进程也将运行,但它们可能仅在镜像被推送后运行,可能已经将易受攻击的镜像暴露给公众。
是什么让 Dockerter 与众不同?
好问题,Dockter是一个更大的产品
GitLab AI Assist的副产品,作为第一个起点,选择了 Dockerfiles。开发了一个解析器,以完全解析为机器学习设计的格式的 Dockerfile。为了训练 ML 模型,需要创建一个大型、丰富的数据集,并且需要对 Dockerfile 进行良好的分析。因此,创建Dockter. 它会从第一天开始改进你的 Dockerfiles,但在未来会变得更加强大,最终它会自动为你创建 Dockerfiles。
无遥测
不用担心,您的 Dockerfile 仍然是私有的,Dockter不会与 GitLab 共享任何遥测数据,也许在机器学习模型将从用户反馈中受益的某个时间点,提供匿名反馈的选项可能是,具有大量用户意识和选择 -中,介绍。
动态解析器
背后的解析器在Dockter设计时考虑了数据和机器学习,它支持解析所有 Docker 指令并添加对注释的支持,包括实际注释和注释掉的代码。
解析器还支持动态分析,它是上下文感知的,例如:
COPY . /app
如果执行了静态分析,它将批准上述指令,Dockter但实际上会列出其中的文件.并根据已知文件分析它们以包含凭据,还会过滤您的
.dockerignore文件。
用法
您可以使用以下几种方法Dockter:
- 当地的
- CI/CD
建议始终使用两者,但至少在您实际构建和发布图像的地方运行它。
本地使用
您需要从Dockter安装pip
pip install --upgrade dockter --extra-index-url https://gitlab.com/api/v4/projects/36078023/packages/pypi/simple
dockter -d path/to/Dockerfile
如果您想了解更多信息,您可以在详细模式下运行它或要求解释特定规则
# Explain rule dfa001
docker -e dfa001
# Run in verbose mode (this will be a lot of text)
dockter -v -d path/to/Dockerfile
您还可以使用 docker:
docker run -it -v $(pwd):/app registry.gitlab.com/gitlab-org/incubation-engineering/ai-assist/dockter/dockter:latest dockter -d docter.Dockerfile
CI/CD
GitLab CI 示例中的用法:
dockter:
image: registry.gitlab.com/gitlab-org/incubation-engineering/ai-assist/dockter/dockter:latest
stage: lint
script:
- dockter -d Dockerfile
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。