昇腾社区首页
中文
注册

构建边缘推理容器镜像(openEuler系列)

本章节以在容器镜像openEuler 20.03上为例,制作包含CANN软件包NNRT、Kernels的CANN边缘推理容器镜像。

可以参考本节内容定制修改Dockerfile,自定义制作CANN容器镜像。

  1. 执行如下命令,在任意目录(如“/home”)新建ascend-cann文件夹。
    mkdir ascend-cann
  2. 执行如下命令,进入ascend-cann目录。
    cd ascend-cann

    请参见准备软件包,在当前目录放置NNRT和Kernels(可选)软件包。

  3. 执行vi Dockerfile命令新建Dockerfile文件,添加如下内容。用户可以根据操作系统类型和待安装的软件包,自行修改脚本。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    ARG BASE=$BASE
    FROM $BASE
    
    WORKDIR /tmp
    COPY . ./
    
    # 设置驱动路径环境变量
    ARG ASCEND_BASE=/usr/local/Ascend
    ENV LD_LIBRARY_PATH=\
    $ASCEND_BASE/driver/lib64:\
    $ASCEND_BASE/driver/lib64/common:\
    $ASCEND_BASE/driver/lib64/driver:\
    $LD_LIBRARY_PATH
    
    SHELL ["/bin/bash","-c"]
    
    # 1 环境准备
    RUN yum install -y shadow-utils
    
    # 2 安装CANN
    ARG CANN_PKG=Ascend-cann-nnrt_*.run
    ARG KERNEL_PKG=Ascend-cann-kernels-*.run
    RUN chmod +x $CANN_PKG && \
        ./$CANN_PKG --quiet --install --install-path=$ASCEND_BASE --install-for-all && \
        chmod +x $KERNEL_PKG && \
        ./$KERNEL_PKG --quiet --install --install-for-all
    
    # 3 环境清理
    RUN rm -rf ./*
    

    修改后执行:wq!命令保存文件并退出。

  4. 在当前目录执行以下命令构建镜像。
    docker build -t {image_name}:{new_tag} --build-arg BASE={image_name}:{tag} .

    注意不要遗漏命令结尾的“.”,命令示例如下所示。

    docker build -t ascend-cann:8.0.RC2-openEuler --build-arg BASE=openeuler-20.03-lts-sp2:latest .
    表1 命令参数说明

    参数

    说明

    {image_name}:{new_tag}

    此次构建的镜像名称与标签,建议将{image_name}:{new_tag}命名为“软件包:软件包版本-容器OS”(例如“ascend-cann:8.0.RC2-openEuler”)

    --build-arg

    指定dockerfile文件内的参数

    {image_name}:{tag}

    {image_name}:{tag}安装前准备的OS基础容器镜像