在Docker中安装Coco
在本章中,我们给出一个如何在Docker中运行Coco的示例,仅终端交互。
先决条件
- 一台Linux机器,在这个示例中 Debian,
- Docker(最新版本,但任何稳定版本都应该可以正常工作)。
Docker的安装
在安装Coco之前,我们需要安装Docker。要检查您的计算机上是否运行了Docker,请键入
$ docker --version
如果您的计算机上已经安装了Docker,则跳过以下步骤。
从Debian仓库安装
标准的Debian发行版已经包含了Docker软件包。它通常被称为 docker
或 docker.io
。要安装它,请运行
$ sudo apt-get install docker.io
从Docker仓库安装
如果您需要Docker的最新版本,可以使用Docker仓库。以下安装Docker的步骤对于所有基于Linux的机器来说都是类似的。有关更多信息,请参阅Docker文档。
- 更新
apt
软件包索引$ sudo apt-get update
- 安装允许
apt
通过HTTPS使用存储库的软件包$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
- 添加Docker的官方GPG密钥
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- 使用以下命令设置稳定的存储库
$ sudo add-apt-respostiory \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable"
- 更新
apt
软件包索引$ sudo apt-get update
- 安装Docker CE和
containerd
的最新版本$ sudo apt-get install docker-ce docker-ce-cli containerd.io
安装验证
现在请验证您的用户账户是否有权限运行Docker容器。在大多数UNIX®系统上,用户必须是docker
组的成员。要验证此,请使用id
命令,该命令将打印出用户当前所在的组。如果您不是docker
的成员,请运行
$ sudo adduser
<own account> docker
但在之后,通常需要重新登录才能使组更改可见。
要验证Docker CE是否正确安装,请运行hello-world
镜像
$ docker run hello-world
要删除hello-world
镜像,首先运行
$ docker ps -a
输出应为一组容器列表,包含名称、状态等。它应包含一个标题行和一个用于 hello-world
图像的行。在第一列中是 hello-world
图像的容器 ID。
$ docker rm
<容器ID>
在 Docker 容器中安装 Coco
- 创建一个空的目录。我们将称之为 工作目录。
- 将 Coco 软件包下载到工作目录。它必须以
.run
结尾的文件,例如SquishCocoSetup_5.0.0_Linux_x86_64.run
。 - 在工作目录中,创建一个名为
Dockerfile
的文件,内容如下:# Select base image FROM debian # Install packages for your project RUN apt-get update && apt-get upgrade -y && apt-get install -y libgtk2.0-dev # Set "secret" as root password RUN echo "root:secret" | chpasswd # Define a user RUN useradd -ms /bin/bash myapp USER myapp WORKDIR /home/myapp # Copy the Coco installer to the work directory COPY SquishCocoSetup*.run .
对于实际项目,文件内容需要相应调整。以下示例做了以下操作:
- 从 Docker Hub 网站加载一个镜像。在这种情况下,它是最新的 Debian 镜像,但任何 Linux 镜像都应适用。
- 安装一些软件包。在实际应用中,这些将是对应软件项目的先决条件,对代码覆盖率进行测量。
这里给出的安装命令显然只在 Debian 或类似 Debian 的系统中有效,例如 Ubuntu。
- 设置 root 密码,该密码稍后由 Coco 安装程序通过用户账号运行。
- 创建一个用户账号。
- 将 Coco 安装程序复制到容器中。它将位于用户
myapp
的家目录。通配模式
SquishCocoSetup*.run
适用于任何 Coco 安装程序包的名称,不受版本号限制。
- 在工作目录中,运行以下命令:
$ docker build -t squishcoco .
然后 Docker 将创建一个名为
squishcoco
的镜像。 - 要运行该镜像,请执行以下命令:
$ docker run -it --name runner squishcoco
然后,将创建并启动一个名为
runner
的容器。 - 你现在将看到容器的命令提示符,而不再是操作系统的。你现在位于用户
myapp
的家目录。此目录还包含 Coco 安装程序的副本。你可以用类似以下命令来运行它:
myapp@a6e8af:~$ bash SquishCocoSetup_5.0.0_Linux_x86_64.run
安装程序将让您在不同的安装模式之间进行选择。选择第一个,
在本地机器上安装
。安装程序将询问 root 密码,当然,是 秘密 的。安装结束时,安装程序会询问
您是否想要启动 \COCO 许可证管理器来注册此产品?
。回答 不,因为安装程序使用图形界面,而在 Docker 容器中通常无法使用。 - 相反,必须使用非 GUI 版本的许可证管理器。运行以下命令之一:
- 如果您获得了激活码,请确保 Docker 容器已启用网络访问,然后运行:
myapp@a6e8af:~$/opt/SquishCoco/bin/cocolic --fetch-license-key
=<激活码>然后将从许可证服务器获取许可证密钥。之后,可以再次禁用网络访问。
- 如果您已经有了许可证密钥,则运行:
myapp@a6e8af:~$/opt/SquishCoco/bin/cocolic --license-key
=<许可证密钥> - 如果您使用许可证服务器,则运行:
myapp@a6e8af:~$/opt/SquishCoco/bin/cocolic --license-server
=<服务器>:<端口号>在这种情况下,Docker 容器需要在编译期间以及每次 Coco 工具运行时启用网络访问。当被强化程序运行时,不需要网络访问。
如果显示错误消息,请联系 froglogic 支持。
或者,您可以通过运行以下命令来检查许可证是否已激活:
myapp@a6e8af:~$/opt/SquishCoco/bin/cocolic --check
- 如果您获得了激活码,请确保 Docker 容器已启用网络访问,然后运行:
- 现在 Coco 已在 Docker 中安装。您可以使用
exit
命令退出容器。 - 要再次进入容器,运行
$ docker start -ai runner
Coco v7.2.0©2024 The Qt Company Ltd.
Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有权人的财产。