
如何使用Parasoft C/C++test创建容器映像
这篇文章的第1部分讨论了使用容器部署嵌入式开发工具链的好处。它展示了如何配置Parasoft C/C++test Professional以使其与在容器中部署的编译工具链和测试执行环境一起使用。
现在,让我们看一下使用Parasoft C/C++test Standard创建容器图像。我将演示一个包含容器内静态分析执行的简单示例。
在Docker容器中部署Parasoft C/C++test Standard
作为基于命令行的工具,Parasoft C/C++test标准适用于容器内部署。它可以与编译器打包在一起,并将系统构建到一个容器映像中,并用于CI/CD,并部署到开发人员的桌面以进行本地命令行扫描。下图显示了此设置的高级概述:

该图显示Jenkins使用容器化的C/C++test运行静态分析。在此特定设置中,Parasoft C/C++test,编译工具链和构建工具部署在该图右上角所示的容器中。
右下方它下方的容器提供了执行环境,执行运行时测试(例如单元测试或自动系统级测试)可能需要执行环境。
如果我们打算仅执行静态分析,则我们的设置很可能仅包含带有编译工具链和Parasoft C/C++test的一种容器。
使用Parasoft C/C++test创建容器映像
如果尚未安装,请安装最新版的Parasoft C/C++test 2020.1 for Linux。
为了简化使用C/C++test创建容器映像的过程,最新版本附带了一个Dockerfile示例。您可以在以下位置找到该Dockerfile:
/integration/docker/Dockerfile
这个简单的Dockerfile仅关注构建映像所需的C/C++test步骤。在大多数实际情况下,您需要将此文件与Dockerfile合并。
在分析示例Dockerfile中的内容之前,让我们看看它是如何工作的。我的示例假定以下简单文件结构:
$HOME/sandbox/parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz
1.解压缩C/C++test发行版。
- cd $HOME/sandbox
- tar xzf parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz
2.从发行版中复制示例Dockerfile
- cp cpptest/integration/docker
3.使用有关许可证的信息为C/C++test准备属性文件。我们将使用默认的cpptestcli.properties文件作为基础,因此我们将其复制到我们的工作目录中:
- cp cpptest / cpptestcli.properties
- COPY cpptestcli.properties /opt/parasoft/cpptest
5.现在,我们准备创建Docker映像。运行命令以使用C/C++test构建第一个映像。图像名称为“cpptest_ci_image”。
- docker build -t cpptest_ci_image
Docker将花费一些时间来分析其缓存并下载所需的基本映像。完成此操作后,将复制C/C++test发行版并将其安装到映像中。一两分钟后,图像应准备就绪。 通过执行命令以列出所有图像来确认它:
- docker image -list
在输出中,您应该看到顶部列出了“cpptest_ci_image”。太好了,因此我们已经建立了图像并准备就绪。现在该进行测试了!
测试容器映像
为了进行简单测试,请使用Dockerfile中提供的帮助程序/示例命令行之一。

让我们使用第26行中的命令行在该发行版随附的C/C++test示例之一上执行容器内静态分析。
由于我们决定使用许可信息将cpptestcli.properties文件构建到容器中,因此我们可以简化命令行并删除-settings选项。测试的命令行应如下所示:
- docker run –rm -v $PWD:$PWD -w /opt/parasoft/cpptest/examples/ATM cpptestcli -compiler gcc_9-64 -module . -trace make clean all
瞧!静态分析是在容器中执行的。结果在控制台上 告。
我们可以进一步配置该工具以在本地文件系统上生成HTML 告,但这是另一回事。我们的主要目标是创建内部带有C/C++test的容器,并将其配置为执行静态分析。我们实现了目标。
使用静态分析设置CI服务器
如果您需要在流程中设置带有静态分析的CI服务器,则您的任务会简单得多。只需访问容器。如果您团队中的开发人员想要运行静态分析,则情况也是如此。
是否需要将Parasoft C/C++test升级到最新版本需下载发行版,重建您的容器映像,即可完成!团队和自动化基础设施甚至都不会注意到此操作。如有必要,可平滑,轻松且可逆。
关于Dockerfile内容
在结束之前,让我们看一下用于创建映像的Parasoft C/C++test附带的Dockerfile的内容。下图显示了

详细信息如下:
- 第2行指定GCC映像的Docker集线器,容器映像基于该集线器。
- 第3行为将在此脚本中执行的后续命令设置工作目录。
- 第7行,我们将C/C++test发行版(存档)复制到容器映像。
- 第10行将分布提取到容器内的位置:/opt/parasoft(请注意第4行的WORKDIR命令)
- 第13行将定制的cpptestcli.properties文件从本地目录复制到C/C++test的容器内安装中。此步骤是可选的,默认情况下已被注释掉。在大多数情况下,您需要在C/C++test的安装中嵌入一些属性。最典型的方案是许可证配置,其中将包括许可证服务器的位置、凭据等。
- 第16行删除了分发存档。这只是一个清理。
- 第18行将workdir重置为/home(可选)
- 第19行指定了在容器启动时要运行的可执行文件。
这就是使用Parasoft C/C++test创建一个简单容器即可执行静态分析所需的一切。
正如我提到的,这是一个简单的Dockerfile。它已添加到分发中,以为您提供一个示例,说明您可能需要为环境创建容器映像。您将需要对其进行调整,或者将其与现有的Dockerfile合并。

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!