构建CANN容器镜像(Ubuntu)
本章节以在容器镜像Ubuntu 18.04上为例,制作包含CANN软件包Toolkit和Kernels的CANN容器镜像。
可以参考本节内容定制修改Dockerfile,自定义制作CANN容器镜像。
- 以root用户登录服务器。
- 执行如下命令,在任意目录(如“/home”)新建ascend-cann文件夹。
mkdir ascend-cann
- 执行如下命令,进入ascend-cann目录。
cd ascend-cann
请在当前目录准备以下软件包。表1 所需软件或文件 软件或文件
说明
获取方法
Toolkit
开发套件包。
参见资源下载。
Kernels
二进制算子包,可以节省算子编译时间,根据业务场景可选安装。
- 执行vi Dockerfile命令新建Dockerfile文件,添加如下内容。
ARG BASE=$BASE FROM $BASE WORKDIR /tmp COPY . ./ # 定义时区参数 ENV TZ=Asia/Shanghai # 设置时区 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone ENV LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH ENV PATH=/usr/local/python3.7.5/bin:$PATH # 设置驱动路径环境变量 ARG ASCEND_BASE=/usr/local/Ascend ENV LD_LIBRARY_PATH=\ $ASCEND_BASE/driver/lib64:\ $ASCEND_BASE/driver/lib64/common:\ $ASCEND_BASE/driver/lib64/driver:\ $ASCEND_BASE/driver/tools/hccn_tool/:/lib64:\ $LD_LIBRARY_PATH SHELL ["/bin/bash","-c"] # 环境准备 RUN apt update && \ apt install -y gcc g++ make cmake libsqlite3-dev zlib1g-dev libssl-dev libffi-dev libbz2-dev liblzma-dev wget git vim unzip && \ wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz --no-check-certificate && \ tar -zxvf Python-3.7.5.tgz && \ cd Python-3.7.5 && \ ./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared && \ make -j16 && make install && \ cd /tmp && \ mkdir ~/.pip && \ echo -e '[global]\nindex-url = https://mirrors.huaweicloud.com/repository/pypi/simple\ntrusted-host = mirrors.huaweicloud.com' >> ~/.pip/pip.conf && \ pip3 install --upgrade pip # 安装CANN ARG CANN_PKG=Ascend-cann-toolkit_*.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 && \ pip3 install attrs && \ pip3 install numpy && \ pip3 install decorator && \ pip3 install sympy && \ pip3 install cffi && \ pip3 install pyyaml && \ pip3 install pathlib2 && \ pip3 install psutil && \ pip3 install protobuf && \ pip3 install scipy && \ pip3 install requests && \ pip3 install absl-py # 环境清理 RUN rm -rf /root/.cache/pip && \ rm -rf ./*
修改后执行:wq!命令保存文件并退出。
- 在当前目录执行以下命令构建镜像。
docker build -t {image_name}:{new_tag} --build-arg BASE={image_name}:{tag} .
注意不要遗漏命令结尾的“.”,命令示例如下所示。
docker build -t ascend-cann:8.0.RC3-ubuntu --build-arg BASE=ubuntu:18.04 .
表2 命令参数说明 参数
说明
{image_name}:{new_tag}
此次构建的镜像名称与标签,建议将{image_name}:{new_tag}命名为“软件包:软件包版本-容器OS”(例如“ascend-cann:8.0.RC3-ubuntu”)
--build-arg
指定dockerfile文件内的参数
{image_name}:{tag}
{image_name}:{tag}为构建镜像前准备的OS基础容器镜像。如ubuntu:18.04。
父主题: 自行构建容器镜像