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 数组添加了一个新条目,有两个属性:name 和enabled 。这里,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 中发现的问题。
