Skip to main content

docker:你的 Dockerfiles 的医生

项目描述

Dockerter:你的 Dockerfiles 的医生

Dockerter 的目标是让您的 Dockerfiles 更好,它将确保您的 Dockerfiles:

  • 构建安全映像
  • 构建更小的图像
  • 构建速度更快
  • 遵循最佳实践
  • 非常格式化

DevOps 生命周期

通常,CI/CD 管道大致包括以下步骤:

  • 皮棉代码
  • 构建 Docker 镜像
  • 在 Docker 镜像中运行测试
  • 扫描图像以查找漏洞(希望如此)
  • 将图像推送到注册表
  • 部署映像

Dockter适合第一阶段,旨在防止构建暴露凭据或包含漏洞的映像,这至少可以节省 CI/CD 分钟数。

容器注册表扫描等单独的进程也将运行,但它们可能仅在镜像被推送后运行,可能已经将易受攻击的镜像暴露给公众。

是什么让 Dockerter 与众不同?

好问题,Dockter是一个更大的产品 G​​itLab 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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pydockter-1.0.0.tar.gz (11.9 kB 查看哈希

已上传 source

内置分布

pydockter-1.0.0-py3-none-any.whl (11.0 kB 查看哈希

已上传 py3