Parasoft Docker 镜像是一个模板,它包含了 Parasoft Virtualize 服务器、Parasoft 持续测试平台、Parasoft 数据存储库服务器、所有必需的软件依赖项(例如 Apache Tomcat、JRE...)以及连接到 Parasoft 许可服务器的默认配置设置。在本章节中:
前提条件
确保符合下列组件的系统要求:
Parasoft Virtualize 服务器
请查阅 部署 Parasoft Virtualize Server WAR File。
Parasoft 数据存储库
- 适用于 2008 R2 及更高版本的 64 位发行版 Windows
- 下面是 64 位发行版 Linux:
- Amazon
- Debian 7
- RHEL 5, 6, 7
- SUSE 11
- Ubuntu 12.04, 14.04, 14.10
- Mac OS X
许可证
Docker 中部署的 Parasoft 产品的授权使用的机器码来自 Docker 容器 ID。如果克隆 Docker 容器,克隆将拥有一个不同的机器码,并且需要一个新的许可证,除非您有一个浮动许可证。对于从许可证服务器发出的浮动许可证,我们建议在 Docker 外部的网络上使用许可证服务器。如果有任何关于授权的其他问题,请联系 Parasoft 代表。
配置一个新的 Docker 镜像
若要在 Docker 上部署,需要在配置文件中配置默认连接细节,构建 Docker 镜像,然后运行 soavirt Docker 镜像。
- 下载并安装,如 https://docs.docker.com/docker-for-windows/中所述。这个页面包含 Windows 指令以及到 Linux 和 Mac 指令的链接。
- 启动命令提示符并将目录(cd)更改为提取 Parasoft Docker 文件的文件夹。此文件夹将包含以下子文件夹
- ctp
- datarepository
- server-jre8
- soavirt
- tomcat8
(可选)编辑 soavirt/Dockerfile 文件和 ctp/Dockerfile 文件中的环境变量的默认值。ENV 命令声明一个新的环境变量。环境变量名和值应该用空格分隔。
变量 说明 ENV VIRTUALIZE_SERVER_NAME Docker
指定应用于在环境管理器上标记此服务器的名称。
ENV CTP_HOST localhost
此虚拟服务器启动时应在其中注册的 CTP 服务器的主机名或 IP 地址。如果您的 CTP 运行在 Docker 容器外部的 localhost 上,请指定 IP 地址(例如 10.10.255.47),而不是 localhost。
ENV CTP_PORT 8080
应该用于连接到 CTP 的端口。
ENV CTP_USERNAME admin
应该用于连接到 CTP 的用户名(如果启用了身份验证)。
ENV CTP_PASSWORD admin
用于连接到 CTP 的密码(如果启用了身份验证)。
ENV CTP_NOTIFY true
如果为真,则虚拟服务器在部署虚拟资产时通知 CTP。
ENV LICENSE_EDITION custom_edition
从许可证服务器请求的 Virtualize 许可证版本。
ENV LICENSE_FEATURES "Service Enabled, Performance, Extension Pack, Validate, Message Packs, Unlimited Hits\/Day"
使用自定义版本许可证时,从许可证服务器请求的 Virtualize 许可证特性。
ENV LICENSE_SERVER_HOST localhost
用于请求 Virtualize 许可证的许可证服务器的主机名或 IP 地址。
ENV LICENSE_SERVER_PORT 2002
用于连接到许可证服务器的端口。
如何排除数据存储库
如果不希望在 Docker 镜像中包含数据存储库,请将 soavirt/Docker 文件的第一行从
FROM datarepository
更改为FROM tomcat8
。在 Docker 终端中按如下顺序执行以下命令,为每个子文件夹构建 Docker 图像:
docker build -t server-jre8 server-jre8/ docker build -t tomcat8 tomcat8/ docker build -t datarepository datarepository/ docker build -t soavirt soavirt/ docker build -t ctp ctp/
使用以下格式执行一个命令来运行新创建的 Docker 镜像:
docker run -it --rm -p 8080:8080 -p 9080:9080 ctp
将启动数据存储库服务器、Virtualize 服务器和 CTP。CTP 已经运行在 Docker 容器之外
如果 CTP 已经在 Docker 容器 外 运行,则运行 soavirt Docker 镜像:
docker run -it --rm -p 2424:2424 -p 9080:9080 soavirt
这个
-it
选项使正在运行的 Docker 容器具有交互性,因此它将继续运行,直到在终端中按下 Ctrl-C。这个
-rm
选项将 CTP 和 Virtualize 服务器配置为一次性沙箱。在关闭时,Docker 容器将被删除并放弃对 CTP 数据库、Virtualize 工作区和数据存储库的任何更改。如果希望能够关闭 CTP 和 Virtualize,然后在重启之后继续您的工作,请不要使用此选项。设置
-p 2424:2424
将端口 2424 从 Docker 容器映射到主机中的端口 2424(用于数据存储库)。设置
-p 8080:8080
将端口 8080 从 Docker 容器映射到主机中的端口 8080(用于 CTP)。设置
-p 9080:9080
将端口 9080 从 Docker 容器映射到主机中的端口 9080(用于 Virtualize)。
现在,您应该看到 CTP 中列出的 Virtualize 服务器,并且能够使用 CTP web 接口(默认情况下是 http://localhost:8080/)创建虚拟资产或上传 .pva 文件。
如何仅使用 CTP(没有数据存储库或 Virtualize)创建 Docker 映像
如果想创建一个只有 CTP 而没有数据存储库或 Virtualize 的 Docker 镜像,请将 CTP /Dockerfile 的第一行从 FROM soavirt
更改为 FROM tomcat8
,然后重新构建 ctp 镜像。
更改配置
如果想在不重新构建 soavirt 和 ctp 镜像的情况下覆盖默认配置(例如,使用不同的 CTP 或许可证服务器),请执行以下操作:
- 关闭正在运行的容器。
- 使用
-e
选项覆盖 run 命令中的环境变量,并使用等号分隔环境变量名称/值。
docker run -it --rm -p 2424:2424 -p 9080:9080 -e CTP_HOST=em.acme.com -e CTP_PORT=8080 -e LICENSE_SERVER_HOST=ls.acme.com soavirt
docker run -it --rm -p 2424:2424 -p 9080:9080 -e CTP_HOST=10.10.255.47 -e CTP_PORT=8080 -e LICENSE_SERVER_HOST=license.parasoft.com soavirt
现在,您应该看到 CTP 中列出的 Virtualize 服务器,并且能够使用 CTP web 接口(默认情况下是 http://localhost:8080/)创建虚拟资产或上传 .pva 文件。
更改 Docker 镜像中的默认配置
您可以更改 Docker 镜像内的默认配置,其中包括重新构建 ctp 和 soavirt 镜像。
- 关闭 Docker 容器(比如,在终端按 Ctrl-C)。
- 删除 soavirt 和 ctp 图像:
- 在 Docker 终端,输入以下命令:
docker images
- 输入以下命令删除 ctp 镜像:
docker rmi ctp
- 输入以下命令删除 soavirt 镜像
docker rmi ctp
- 输入以下命令,验证图像是否已删除:
docker images
- 在 Docker 终端,输入以下命令:
- 根据需要编辑 ctp/Dockerfile 和 soavirt/Dockerfile 文件。
- 通过输入以下命令,从 Docker 终端中的基本文件夹重新构建:
docker build -t soavirt soavirt/
docker build -t ctp ctp/