鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

使用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://gitee.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

  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

  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

  8. 配置加载singularity环境变量。执行如下命令:

    module load ${JARVIS_ROOT}/software/modulefiles/singularity/3.9.6

    无回显结果表示正常。

  9. 使用singularity构建镜像。执行如下命令:

    singularity build ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif container/grads/2.2.1/openeuler-gcc-hmpi1-grads-2.2.1.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: ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif
    • 运行“singularity build”命令需要服务器有外网权限。
    • ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif 表示生成的.sif文件保存到当前用户家目录。
  10. 运行测试生成的镜像。执行如下命令:

    singularity exec ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif bash -c "grads -lbc 'q config' </dev/null && grads -lbc 'q gxconfig' </dev/null"

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

    Grid Analysis and Display System (GrADS) Version 2.2.1
    Copyright (C) 1988-2018 by George Mason University
    GrADS comes with ABSOLUTELY NO WARRANTY
    See file COPYRIGHT for more information
    
    Config: v2.2.1 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids athena geotiff shapefile
    Issue 'q config' and 'q gxconfig' commands for more detailed configuration information
    GX Package Initialization: Size = 11 8.5
    Running in Batch mode
    Config: v2.2.1 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids athena geotiff shapefile
    Grid Analysis and Display System (GrADS) Version 2.2.1
    Copyright (C) 1988-2018 by George Mason University
    GrADS comes with ABSOLUTELY NO WARRANTY
    See file COPYRIGHT for more information
    
    Configured on 10/28/25 for aarch64-unknown-linux-gnu
    
    This build of GrADS has the following features:
     -+- Byte order is LITTLE ENDIAN
     -+- Athena Widget GUI ENABLED
     -+- Command line editing ENABLED
     -+- GRIB2 interface ENABLED  g2clib-1.6.0
     -+- NetCDF interface ENABLED  netcdf-4.8.1
     -+- OPeNDAP gridded data interface ENABLED
     -+- OPeNDAP station data interface DISABLED
     -+- HDF4 interface ENABLED  hdf-4.2r5
     -+- HDF5 interface ENABLED  hdf5-1.12.1
     -+- KML contour output ENABLED
     -+- GeoTIFF and KML/TIFF output ENABLED
     -+- Shapefile interface ENABLED
    The 'q gxconfig' command returns Graphics configuration information
    ga-> [EOF]
    GX Package Terminated

    如遇到文件系统只读的权限问题可加参数--writable-tmpfs执行,执行如下命令:

    singularity exec --writable-tmpfs ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif bash -c "grads -lbc 'q config' </dev/null && grads -lbc 'q gxconfig' </dev/null"

运行和验证

  1. 使用HPCRunner一键构建镜像中的步骤生成容器openeuler-gcc-hmpi1-grads-2.2.1.sif。
  2. 运行和验证中的步骤1~3在当前路径下创建文件test.dat、test.ctltest.gs
  3. 执行以下命令运行测试脚本(测试文件所在路径和容器路径按照实际情况修改):

    singularity exec -B ${PWD}:/home --pwd /home ${HOME}/openeuler-gcc-hmpi1-grads-2.2.1.sif grads -blc /home/test.gs

  4. 若执行成功会在当前目录下生成test.png文件,查看可得到如图1所示图像,表示GrADS安装成功,功能正常: