---
title: 使用HPCRunner一键构建镜像
description: "- 待构建镜像的节点已挂载配置YUM源。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/topic_0000002465622854.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/topic_0000002465622854.html
indexId: dc804dbfad4d8f335b5b47051dfaf93513c9f1599c42df6a492f491cf58b879469
---
# 使用HPCRunner一键构建镜像

#### 前置条件

- 待构建镜像的节点已挂载配置YUM源。
  YUM源挂载配置建议使用全量的ISO Everything包。

- 待构建镜像的节点需要服务器有外网权限。如无外网权限请先配置外网权限或外网代理。


#### 安装步骤

1. 使用PuTTY工具，以root用户登录节点。
2. 安装基础依赖包。执行如下命令：
  yum -y install git time zlib zlib-devel gcc gcc-c++ environment-modules python python3 python3-devel python3-libs python3-pip cmake make numactl numactl-devel numactl-libs rpmdevtools wget libtirpc libtirpc-devel unzip flex tar patch glibc-devel rpcbind csh perl-XML-LibXML xorg-x11-xauth curl curl-devel libcurl-devel libxml2-devel

3. 克隆仓库。如已通过手动下载了贾维斯智能助手（HPCRunner），则忽略该步骤，否则执行如下命令：
  git clone https://gitcode.com/openeuler/hpcrunner.git

  回显结果包含如下示例内容，表示HPCRunner克隆成功：

```
Cloning into 'hpcrunner'...
remote: Enumerating objects: 13018, done.
remote: Counting objects: 100% (171/171), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 13018 (delta 89), reused 57 (delta 23), pack-reused 12847 (from 1)
Receiving objects: 100% (13018/13018), 72.71 MiB | 2.57 MiB/s, done.
Resolving deltas: 100% (6150/6150), done.
```


4. 初始化HPCRunner。执行如下命令：
  cd hpcrunner

  source init.sh

  hpcrunner表示HPCRunner安装目录，可根据实际情况调整。

5. 安装go。执行如下命令：
  ./jarvis -install go/1.18 com

  回显结果包含如下示例内容，表示go安装成功：

```
SUCCESSFULLY EXECUTED AT 2025-10-13 09:51:31, CONGRATULATIONS!!!
```


  若网络条件不佳或在线下载较慢，可提前将go软件的安装包提前下载至HPCRunner的downloads目录,以避免解压或编译安装失败。 go软件的下载地址为：https://go.dev/dl/go1.18.linux-arm64(https://go.dev/dl/go1.18.linux-arm64)

6. 配置加载go环境变量。执行如下命令：
  module load ${JARVIS_ROOT}/software/modulefiles/go/1.18

  无回显结果表示正常。

7. 安装singularity。执行如下命令：
  ./jarvis -install singularity/3.9.6 any

  回显结果包含如下示例内容，表示singularity安装成功：

```
SUCCESSFULLY EXECUTED AT 2025-10-13 09:55:31, CONGRATULATIONS!!!
```


  若网络条件不佳或在线下载较慢，可提前将singularity软件的安装包提前下载至HPCRunner的downloads目录,以避免解压或编译安装失败。 singularity软件的下载地址为：https://github.com/sylabs/singularity/releases/download/v3.9.6/singularity-ce-3.9.6.tar.gz(https://github.com/sylabs/singularity/releases/download/v3.9.6/singularity-ce-3.9.6.tar.gz)

8. 配置加载singularity环境变量。执行如下命令：
  module load ${JARVIS_ROOT}/software/modulefiles/singularity/3.9.6

  无回显结果表示正常。

9. 使用singularity构建镜像。执行如下命令：
  singularity build ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif container/cdo/1.9.8/openeuler-bisheng2-hmpi1-cdo-1.9.8.def

  回显结果包含如下示例内容，表示镜像构建成功：

```
SUCCESSFULLY EXECUTED AT 2025-10-14 08:16:21, CONGRATULATIONS!!!
INFO:    Adding labels
INFO:    Adding environment to container
INFO:    Creating SIF file...
INFO:    Build complete: /root/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif
```


  运行“singularity build”命令需要服务器有外网权限。 ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif表示生成的.sif文件保存到当前用户家目录。

10. 运行测试生成的镜像。执行如下命令：
  singularity exec ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif cdo --version

  回显结果包含如下示例内容，表示运行测试成功：

```
Filetypes: srv ext ieg grb1 grb2 nc1 nc2 nc4 nc4c nc5
CDI library version : 1.9.8
cgribex library version : 1.9.4
ecCodes library version : 1.21.0
NetCDF library version : 4.9.3 of Oct 14 2025 08:12:06 $
hdf5 library version : 1.13.0
exse library version : 1.4.1
FILE library version : 1.8.3
```


  如遇到文件系统只读的权限问题可加参数--writable-tmpfs执行，执行如下命令： singularity exec --writable-tmpfs ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif cdo --version


#### 运行和验证

1. 使用PuTTY工具，以root用户登录镜像文件所在的节点。
2. 进入镜像。执行如下命令：
  singularity shell --writable-tmpfs ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif

  回显结果如下示例：

```
[root@node hpcrunner]# singularity shell --writable-tmpfs ${HOME}/openeuler-bisheng2-hmpi1-cdo-1.9.8.sif
UID: readonly variable
Singularity>
```


3. 执行如下命令，切换到CDO的源码单元测试用例目录。
  cd /hpcrunner/software/apps/cdo-1.9.8/test

4. 参考《使用HPCRunner一键安装CDO》章节《应用验证》中的第4、5、6步骤完成应用验证。
