如果你今天正在向生产环境发送代码,那么你很有可能已经使用Docker来容器化你的应用程序,这样它就可以在所有环境中可靠地运行--本地、暂存、生产以及中间的任何环境。随着Docker文件成为大多数项目的常规功能,重要的是要确保你的Docker文件也是好的。
DeepSource现在支持对Dockerfiles进行持续的静态分析,可以检测到70多个问题,如错误风险、反模式、安全漏洞和性能优化。
使用Docker分析器
要开始分析你的Dockerfiles,只需在你的.deepsource.toml 文件中启用docker 分析器,你就可以开始了。
默认情况下,DeepSource会分析存在于你的资源库根部的Dockerfile 。如果你的Docker文件有不同的名称,或者有许多Docker文件,你可以在meta 中明确指定路径。如果你从第三方镜像注册中心提取镜像,你还可以选择定义受信任的注册中心。
配置样本
version = 1
[[analyzers]]
name = "docker"
enabled = true
[analyzers.meta]
dockerfile_paths = [ # optional
"dockerfile_dev",
"dockerfile_prod"
]
trusted_registries = [ # optional
"my-registry.com",
"docker.io"
]
Docker分析器检测到的问题
在写这篇文章的时候,分析器在你的Dockerfile ,检测到70多个问题,类别包括bug风险、反模式、安全漏洞和性能优化等。下面是其中的一些,让你了解一下。
安全问题
- 最后一个用户不应该是
root - 在
FROM镜像中只使用一个允许的注册表
漏洞风险
COPY --from应该引用以前定义的 别名FROM- 检测到多条
ENTRYPOINT指令 - 检测到多条
CMD指令
性能问题
- 对文件和文件夹使用
COPY而不是ADD - 使用
ADD,将档案提取到一个图像中。 - 在安装完一些东西后删除
apt-get列表
我们对这个版本感到非常兴奋,我们希望这将帮助你在Docker容器中避免许多麻烦和安全问题。请前往文档或告诉我们你的想法!