用DeepSource让你的Dockerfile变得更好

443 阅读2分钟

DeepSource可以分析的不仅仅是你用Python或Go等编程语言写的代码,(或JavaScript)。今天的软件组织更喜欢把工具和基础设施配置写成代码。我们一直在努力发布和改进扫描工具配置的分析器。Docker是其中一个工具,简单地说,我们很多人都在使用。

DeepSource支持分析存储库中的Dockerfiles已经有一段时间了。到目前为止,Docker分析器已经在150多个存储库的Dockerfiles中检测到四千多个问题。

如果你已经在使用DeepSource,要知道你可以为每个软件库启用多个分析器,而Docker可以是其中之一。如果你还没有使用DeepSource,你可以从这里开始

启用Docker分析器

如果你已经安装了DeepSource,你可以从 "生成配置 "页面添加Docker分析器。如果你喜欢手动操作,请跳过这一部分。

手动指定配置

你可以通过在版本库的.deepsource.toml 文件中添加这个配置,使Docker分析器为你的版本库的分析运行。

[[analyzers]]
name = "docker"
enabled = true

这三行给TOML配置中的analyzers 数组添加了一个新条目,有两个属性:nameenabled 。这里,name = "docker" 告诉DeepSource使用Docker分析器。

当你启用多个分析器时,它们中的每一个都应该在配置文件中获得自己的[[analyzers]] 块。

如果不对你的Docker文件使用自定义的文件路径或文件名,这将是开箱即用。

指定自定义文件路径

如果你把Dockerfiles放在非默认的位置,而不是仓库根部的Dockerfile ,你可以通过额外的配置指定这些文件的位置。要做到这一点,你可以在同一区块的meta 表格中添加一个dockerfile_paths 数组。

比如,你有多个Dockerfiles为./env/Dockerfile_dev./env/Dockerfile_prod ,你可以把它们写成。

[[analyzers]]
name = "docker"
enabled = true

  [analyzers.meta]
  dockerfile_paths = [
    "./env/Dockerfile_dev",
    "./env/Dockerfile_prod"
  ]

你需要在你的Repo中提交更新的配置文件,以便DeepSource接收这些变化。此后,DeepSource将留意你的Docker配置中的问题。

演示资源库

我已经创建了一个演示库,以展示DeepSource最简单的Docker集成。你可以看看DeepSource在该 repo中的Dockerfile发现的问题

Docker demo repository analysis dashboard

下一步是什么