镜像构建历史
# 2025-06-10 19:35:04 4.31KB
mount / from exec /bin/bash -eo pipefail -c # Export CANN driver lib
EXPORT_DRIVER_LIB="export LD_LIBRARY_PATH=${CANN_HOME}/driver/lib64/common:${CANN_HOME}/driver/lib64/driver:\${LD_LIBRARY_PATH}"
echo "${EXPORT_DRIVER_LIB}" >> /etc/profile
echo "${EXPORT_DRIVER_LIB}" >> ~/.bashrc
# Source CANN Toolkit environment
SOURCE_TOOLKIT_ENV="source ${CANN_HOME}/ascend-toolkit/set_env.sh"
echo "${SOURCE_TOOLKIT_ENV}" >> /etc/profile
echo "${SOURCE_TOOLKIT_ENV}" >> ~/.bashrc
# Source CANN NNAL environment
SOURCE_NNAL_ENV="source ${CANN_HOME}/nnal/atb/set_env.sh"
echo "${SOURCE_NNAL_ENV}" >> /etc/profile
echo "${SOURCE_NNAL_ENV}" >> ~/.bashrc
# Source ATB model environment
SOURCE_ATB_MODEL_ENV="source ${CANN_HOME}/atb-models/set_env.sh"
echo "${SOURCE_ATB_MODEL_ENV}" >> /etc/profile
echo "${SOURCE_ATB_MODEL_ENV}" >> ~/.bashrc
# Export Driver tools
EXPORT_DRIVER_TOOLS="export PATH=${CANN_HOME}/driver/tools:\${PATH}"
echo "${EXPORT_DRIVER_TOOLS}" >> /etc/profile
echo "${EXPORT_DRIVER_TOOLS}" >> ~/.bashrc
# NB(thxCode): For specific MindIE version supporting,
# we need to process environment setting up during GPUStack deployment.
# NB(thxCode): Any tuning environment variables should NOT be set here.
# 2025-06-10 19:35:03 2.17GB
mount / from exec /bin/bash -eo pipefail -c # GPUStack
# Build GPUStack
export PATH="${HOME}/.local/bin:${PATH}"
cd /workspace/gpustack \
&& git config --global --add safe.directory /workspace/gpustack \
&& make build
# Pre process
# - Create virtual environment to place gpustack
python -m venv --system-site-packages ${PIPX_LOCAL_VENVS}/gpustack
# - Prepare environment
source ${PIPX_LOCAL_VENVS}/gpustack/bin/activate
# Install GPUStack,
# vox-box relies on PyTorch 2.7, which is not compatible with MindIE.
WHEEL_PACKAGE="$(ls /workspace/gpustack/dist/*.whl)"
pip install --disable-pip-version-check --no-cache-dir --root-user-action ignore ${WHEEL_PACKAGE} \
&& ln -vsf ${PIPX_LOCAL_VENVS}/gpustack/bin/gpustack /usr/local/bin/gpustack
# Download tools
gpustack download-tools --device npu
# Active MindIE
# MindIE is combined with a lot of components, and it is conflict with vLLM,
# so we need to active MindIE manually at GPUStack.
# Active vLLM
ln -vsf ${PIPX_LOCAL_VENVS}/vllm/bin/vllm ${PIPX_LOCAL_VENVS}/gpustack/bin/vllm
# - Redirect RAY.
rm -rf ${PIPX_LOCAL_VENVS}/gpustack/bin/ray \
&& ln -vsf ${PIPX_LOCAL_VENVS}/vllm/bin/ray ${PIPX_LOCAL_VENVS}/gpustack/bin/ray
# Set up environment
mkdir -p /var/lib/gpustack \
&& chmod -R 0755 /var/lib/gpustack
# Post process
deactivate
# Review
pipx runpip gpustack freeze
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& rm -rf /workspace/gpustack/dist \
&& pip cache purge
# 2025-06-09 21:19:42 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/usr/bin/bash" "-c" "source /etc/profile && exec gpustack start \"$@\"" "--"]
# 2025-06-09 21:19:42 1.80GB 执行命令并创建新的镜像层
RUN |7 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b MINDIE_VERSION=2.0.rc1 /bin/bash -eo pipefail -c # Export CANN driver lib
EXPORT_DRIVER_LIB="export LD_LIBRARY_PATH=${CANN_HOME}/driver/lib64/common:${CANN_HOME}/driver/lib64/driver:\${LD_LIBRARY_PATH}"
echo "${EXPORT_DRIVER_LIB}" >> /etc/profile
echo "${EXPORT_DRIVER_LIB}" >> ~/.bashrc
# Source CANN Toolkit environment
SOURCE_TOOLKIT_ENV="source ${CANN_HOME}/ascend-toolkit/set_env.sh"
echo "${SOURCE_TOOLKIT_ENV}" >> /etc/profile
echo "${SOURCE_TOOLKIT_ENV}" >> ~/.bashrc
# Source CANN NNAL environment
SOURCE_NNAL_ENV="source ${CANN_HOME}/nnal/atb/set_env.sh"
echo "${SOURCE_NNAL_ENV}" >> /etc/profile
echo "${SOURCE_NNAL_ENV}" >> ~/.bashrc
# Source ATB model environment
SOURCE_ATB_MODEL_ENV="source ${CANN_HOME}/atb-models/set_env.sh"
echo "${SOURCE_ATB_MODEL_ENV}" >> /etc/profile
echo "${SOURCE_ATB_MODEL_ENV}" >> ~/.bashrc
# Export Driver tools
EXPORT_DRIVER_TOOLS="export PATH=${CANN_HOME}/driver/tools:\${PATH}"
echo "${EXPORT_DRIVER_TOOLS}" >> /etc/profile
echo "${EXPORT_DRIVER_TOOLS}" >> ~/.bashrc
# NB(thxCode): For specific MindIE version supporting,
# we need to process environment setting up during GPUStack deployment.
# NB(thxCode): Any tuning environment variables should NOT be set here.
# buildkit
# 2025-06-09 21:19:39 1.52GB 执行命令并创建新的镜像层
RUN |7 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b MINDIE_VERSION=2.0.rc1 /bin/bash -eo pipefail -c # GPUStack
# Build GPUStack
export PATH="${HOME}/.local/bin:${PATH}"
cd /workspace/gpustack \
&& git config --global --add safe.directory /workspace/gpustack \
&& make build
# Pre process
# - Create virtual environment to place gpustack
python -m venv --system-site-packages ${PIPX_LOCAL_VENVS}/gpustack
# - Prepare environment
source ${PIPX_LOCAL_VENVS}/gpustack/bin/activate
# Install GPUStack,
# vox-box relies on PyTorch 2.7, which is not compatible with MindIE.
WHEEL_PACKAGE="$(ls /workspace/gpustack/dist/*.whl)"
pip install --disable-pip-version-check --no-cache-dir --root-user-action ignore ${WHEEL_PACKAGE} \
&& ln -vsf ${PIPX_LOCAL_VENVS}/gpustack/bin/gpustack /usr/local/bin/gpustack
# Download tools
gpustack download-tools --device npu
# Active MindIE
# MindIE is combined with a lot of components, and it is conflict with vLLM,
# so we need to active MindIE manually at GPUStack.
# Active vLLM
ln -vsf ${PIPX_LOCAL_VENVS}/vllm/bin/vllm ${PIPX_LOCAL_VENVS}/gpustack/bin/vllm
# - Redirect RAY.
rm -rf ${PIPX_LOCAL_VENVS}/gpustack/bin/ray \
&& ln -vsf ${PIPX_LOCAL_VENVS}/vllm/bin/ray ${PIPX_LOCAL_VENVS}/gpustack/bin/ray
# Set up environment
mkdir -p /var/lib/gpustack \
&& chmod -R 0755 /var/lib/gpustack
# Post process
deactivate
# Review
pipx runpip gpustack freeze
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& rm -rf /workspace/gpustack/dist \
&& pip cache purge
# buildkit
# 2025-06-09 21:18:05 17.90MB 复制新文件或目录到容器中
COPY /root/.local/share/pipx/venvs/vllm /root/.local/share/pipx/venvs/vllm # buildkit
# 2025-06-09 21:07:07 0.00B 设置环境变量 VLLM_VERSION VLLM_ASCEND_VERSION MINDIE_VERSION
ENV VLLM_VERSION=0.7.3 VLLM_ASCEND_VERSION=0.7.3.post1 MINDIE_VERSION=2.0.rc1
# 2025-06-09 21:07:07 0.00B 定义构建参数
ARG MINDIE_VERSION=2.0.rc1
# 2025-06-09 21:07:07 0.00B 定义构建参数
ARG VLLM_ASCEND_VERSION=0.7.3.post1
# 2025-06-09 21:07:07 0.00B 定义构建参数
ARG VLLM_VERSION=0.7.3
# 2025-06-09 21:07:07 988.77MB 执行命令并创建新的镜像层
RUN |6 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b /bin/bash -eo pipefail -c # CANN NNAL
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
DOWNLOAD_VERSION="$(echo ${CANN_VERSION%\.beta1} | tr '[:lower:]' '[:upper:]')"
URL_PREFIX="https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%20${DOWNLOAD_VERSION}"
URL_SUFFIX="response-content-type=application/octet-stream"
# Prepare environment
source ${CANN_HOME}/ascend-toolkit/set_env.sh
# Install NNAL
NNAL_FILE="Ascend-cann-nnal_${DOWNLOAD_VERSION}_${OS}-${ARCH}.run"
NNAL_PATH="/tmp/${NNAL_FILE}"
NNAL_URL="${URL_PREFIX}/${NNAL_FILE}?${URL_SUFFIX}"
curl -H 'Referer: https://www.hiascend.com/' --retry 3 --retry-connrefused -fL -o "${NNAL_PATH}" "${NNAL_URL}"
chmod a+x "${NNAL_PATH}"
printf "Y\n" | "${NNAL_PATH}" --install --install-path="${CANN_HOME}"
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& rm -rf /var/log/ascend_seclog \
&& rm -rf /var/log/cann_atb_log \
&& pip cache purge
# buildkit
# 2025-06-09 21:06:24 3.84GB 执行命令并创建新的镜像层
RUN |6 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b /bin/bash -eo pipefail -c # CANN Kernels
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
DOWNLOAD_VERSION="$(echo ${CANN_VERSION%\.beta1} | tr '[:lower:]' '[:upper:]')"
URL_PREFIX="https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%20${DOWNLOAD_VERSION}"
URL_SUFFIX="response-content-type=application/octet-stream"
# Prepare environment
source ${CANN_HOME}/ascend-toolkit/set_env.sh
# Install kernels
KERNELS_FILE="Ascend-cann-kernels-${CANN_CHIP}_${DOWNLOAD_VERSION}_${OS}-${ARCH}.run"
if ! curl -H 'Referer: https://www.hiascend.com/' --retry 3 --retry-connrefused -fsSIL "${URL_PREFIX}/${KERNELS_FILE}?${URL_SUFFIX}" >/dev/null 2>&1; then
# Fallback to generic kernels
KERNELS_FILE="Ascend-cann-kernels-${CANN_CHIP}_${DOWNLOAD_VERSION}_${OS}.run"
fi
KERNELS_PATH="/tmp/${KERNELS_FILE}"
KERNELS_URL="${URL_PREFIX}/${KERNELS_FILE}?${URL_SUFFIX}"
curl -H 'Referer: https://www.hiascend.com/' --retry 3 --retry-connrefused -fL -o "${KERNELS_PATH}" "${KERNELS_URL}"
chmod a+x "${KERNELS_PATH}"
printf "Y\n" |"${KERNELS_PATH}" --install --install-for-all --install-path="${CANN_HOME}"
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& rm -rf /var/log/ascend \
&& rm -rf /var/log/ascend_seclog \
&& pip cache purge
# buildkit
# 2025-06-09 21:03:15 7.24GB 执行命令并创建新的镜像层
RUN |6 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b /bin/bash -eo pipefail -c # CANN Toolkit
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
DOWNLOAD_VERSION="$(echo ${CANN_VERSION%\.beta1} | tr '[:lower:]' '[:upper:]')"
URL_PREFIX="https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%20${DOWNLOAD_VERSION}"
URL_SUFFIX="response-content-type=application/octet-stream"
# Install dependencies
cat <<EOT >/tmp/requirements.txt
attrs==24.3.0
numpy==1.26.4
decorator==5.2.1
sympy==1.14.0
cffi==1.17.1
PyYAML==6.0.2
pathlib2==2.3.7.post1
psutil==7.0.0
protobuf==6.31.0
scipy==1.15.3
requests==2.32.3
absl-py==2.2.2
EOT
pip install --disable-pip-version-check --no-cache-dir --root-user-action ignore -r /tmp/requirements.txt
# Install toolkit
TOOLKIT_FILE="Ascend-cann-toolkit_${DOWNLOAD_VERSION}_${OS}-${ARCH}.run"
TOOLKIT_PATH="/tmp/${TOOLKIT_FILE}"
TOOLKIT_URL="${URL_PREFIX}/${TOOLKIT_FILE}?${URL_SUFFIX}"
curl -H 'Referer: https://www.hiascend.com/' --retry 3 --retry-connrefused -fL -o "${TOOLKIT_PATH}" "${TOOLKIT_URL}"
chmod a+x "${TOOLKIT_PATH}"
printf "Y\n" | "${TOOLKIT_PATH}" --install --install-for-all --install-path="${CANN_HOME}"
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& rm -rf /var/log/ascend \
&& rm -rf /var/log/ascend_seclog \
&& pip cache purge
# buildkit
# 2025-06-09 21:00:20 0.00B 设置环境变量 CANN_VERSION CANN_CHIP CANN_HOME
ENV CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b CANN_HOME=/usr/local/Ascend
# 2025-06-09 21:00:20 0.00B 定义构建参数
ARG CANN_CHIP=910b
# 2025-06-09 21:00:20 0.00B 定义构建参数
ARG CANN_VERSION=8.1.rc1.beta1
# 2025-06-09 21:00:20 0.00B 设置环境变量 PIPX_LOCAL_VENVS
ENV PIPX_LOCAL_VENVS=/root/.local/share/pipx/venvs
# 2025-06-09 21:00:20 345.95MB 执行命令并创建新的镜像层
RUN |4 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 PYTHON_VERSION=3.11 /bin/bash -eo pipefail -c # Python
# Download
PYTHON_INSTALL_DIR="/tmp/Python-${PYTHON_VERSION}"
mkdir -p ${PYTHON_INSTALL_DIR}
PYTHON_LATEST_VERSION=$(curl -s https://repo.huaweicloud.com/python/ | grep -oE "${PYTHON_VERSION}\.[0-9]+" | sort -V | tail -n 1)
curl -H 'Referer: https://repo.huaweicloud.com/' --retry 3 --retry-connrefused -fL "https://repo.huaweicloud.com/python/${PYTHON_LATEST_VERSION}/Python-${PYTHON_LATEST_VERSION}.tgz" | tar -zx -C ${PYTHON_INSTALL_DIR} --strip-components 1
# Build
pushd ${PYTHON_INSTALL_DIR}
./configure \
--prefix=/usr \
--enable-optimizations \
--enable-shared \
--enable-ipv6 \
--enable-loadable-sqlite-extensions \
--with-lto=full \
--with-ensurepip=install \
--with-computed-gotos
make -j$(nproc) && make altinstall
popd
# Link
ln -vsf /usr/bin/python${PYTHON_VERSION} /usr/bin/python3
ln -vsf /usr/bin/python${PYTHON_VERSION} /usr/bin/python
ln -vsf /usr/bin/pip${PYTHON_VERSION} /usr/bin/pip3
ln -vsf /usr/bin/pip${PYTHON_VERSION} /usr/bin/pip
ln -vsf /usr/bin/2to3-${PYTHON_VERSION} /usr/bin/2to3
ln -vsf /usr/bin/pydoc${PYTHON_VERSION} /usr/bin/pydoc3
ln -vsf /usr/bin/idle${PYTHON_VERSION} /usr/bin/idle3
# Install packages
cat <<EOT >/tmp/requirements.txt
setuptools==80.7.1
pipx==1.7.1
EOT
pip install --disable-pip-version-check --no-cache-dir --root-user-action ignore -r /tmp/requirements.txt
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt \
&& pip cache purge
# buildkit
# 2025-06-09 20:53:30 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.11
# 2025-06-09 20:53:30 0.00B 定义构建参数
ARG PYTHON_VERSION=3.11
# 2025-06-09 20:53:30 474.62MB 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 /bin/bash -eo pipefail -c # Dependencies
# Install
apt-get install -y --no-install-recommends \
zlib1g zlib1g-dev libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev \
openssl libssl-dev libsqlite3-dev lcov libomp-dev \
libblas-dev liblapack-dev libopenblas-dev libblas3 liblapack3 libhdf5-dev \
libxml2 libxslt1-dev libgl1-mesa-glx libgmpxx4ldbl \
libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
liblzma-dev lzma lzma-dev tk-dev uuid-dev libmpdec-dev \
libnuma-dev
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2025-06-09 20:53:14 143.41MB 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 /bin/bash -eo pipefail -c # CMake/Make/SCCache
# Install
apt-get install -y --no-install-recommends \
pkg-config make
curl --retry 3 --retry-connrefused -fL "https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-linux-$(uname -m).tar.gz" | tar -zx -C /usr --strip-components 1
curl --retry 3 --retry-connrefused -fL "https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz" | tar -zx -C /usr/bin --strip-components 1
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2025-06-09 20:53:07 0.00B 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 /bin/bash -eo pipefail -c # GCC
# NB(thxCode): Upgrade GCC if the Ubuntu version is lower than 21.04.
source /etc/os-release
if (( $(echo "${VERSION_ID} < 21.04" | bc -l) )); then
# Install
apt-get install -y --no-install-recommends \
gcc-11 g++-11 gfortran-11 gfortran
# Update alternatives
if [ -f /etc/alternatives/gcov-dump ]; then update-alternatives --remove-all gcov-dump; fi; update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-11 10
if [ -f /etc/alternatives/lto-dump ]; then update-alternatives --remove-all lto-dump; fi; update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-11 10
if [ -f /etc/alternatives/gcov ]; then update-alternatives --remove-all gcov; fi; update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-11 10
if [ -f /etc/alternatives/gcc ]; then update-alternatives --remove-all gcc; fi; update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10
if [ -f /etc/alternatives/gcc-nm ]; then update-alternatives --remove-all gcc-nm; fi; update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-11 10
if [ -f /etc/alternatives/cpp ]; then update-alternatives --remove-all cpp; fi; update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 10
if [ -f /etc/alternatives/g++ ]; then update-alternatives --remove-all g++; fi; update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 10
if [ -f /etc/alternatives/gcc-ar ]; then update-alternatives --remove-all gcc-ar; fi; update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 10
if [ -f /etc/alternatives/gcov-tool ]; then update-alternatives --remove-all gcov-tool; fi; update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-11 10
if [ -f /etc/alternatives/gcc-ranlib ]; then update-alternatives --remove-all gcc-ranlib; fi; update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 10
if [ -f /etc/alternatives/gfortran ]; then update-alternatives --remove-all gfortran; fi; update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 10
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
fi
# buildkit
# 2025-06-09 20:53:07 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2025-06-09 20:53:07 541.00MB 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/arm64 TARGETOS=linux TARGETARCH=arm64 /bin/bash -eo pipefail -c # Tools
# Refresh
apt-get update -y && apt-get install -y --no-install-recommends \
software-properties-common apt-transport-https \
ca-certificates gnupg2 lsb-release gnupg-agent \
&& apt-get update -y \
&& add-apt-repository -y ppa:ubuntu-toolchain-r/test \
&& apt-get update -y
# Install
apt-get install -y --no-install-recommends \
ca-certificates build-essential binutils bash openssl \
curl wget aria2 \
git git-lfs \
unzip xz-utils \
tzdata locales \
iproute2 iputils-ping ifstat net-tools dnsutils pciutils ipmitool \
procps sysstat htop \
tini vim jq bc tree
# Update locale
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2025-06-09 20:53:07 0.00B 设置环境变量 DEBIAN_FRONTEND
ENV DEBIAN_FRONTEND=noninteractive
# 2025-06-09 20:53:07 0.00B 定义构建参数
ARG TARGETARCH=arm64
# 2025-06-09 20:53:07 0.00B 定义构建参数
ARG TARGETOS=linux
# 2025-06-09 20:53:07 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/arm64
# 2025-06-09 20:53:07 0.00B
SHELL [/bin/bash -eo pipefail -c]
# 2025-05-31 06:33:15 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-05-31 06:33:15 69.22MB
/bin/sh -c #(nop) ADD file:7adcd25cfa0f5393043ae51833e5654ddd86b0c9fe24cfdacf535c1c2c516c7a in /
# 2025-05-31 06:33:12 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2025-05-31 06:33:12 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-05-31 06:33:12 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-05-31 06:33:12 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:f31f5c7c3b7cbaab47142a6a992247a8b459f34f937a0b10a3f8dd1f66f8b78d",
"RepoTags": [
"gpustack/gpustack:v0.6.2-npu",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack:v0.6.2-npu-linuxarm64"
],
"RepoDigests": [
"gpustack/gpustack@sha256:c93a44e3ff7eaf6cb467afff1cc1d44c93de070876c287f0aeac162962b90dae",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack@sha256:d34f0b2eef82b7c02bbc67fbf8887b217139dcccbae70c895b1a170f8b5fdbd4"
],
"Parent": "",
"Comment": "buildkit.exporter.image.v0",
"Created": "2025-06-10T11:35:04.475425897Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DEBIAN_FRONTEND=noninteractive",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"PYTHON_VERSION=3.11",
"PIPX_LOCAL_VENVS=/root/.local/share/pipx/venvs",
"CANN_VERSION=8.1.rc1.beta1",
"CANN_CHIP=910b",
"CANN_HOME=/usr/local/Ascend",
"MINDIE_VERSION=2.0.rc1"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"tini",
"--",
"/usr/bin/bash",
"-c",
"source /etc/profile \u0026\u0026 exec gpustack start \"$@\"",
"--"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2025-06-10T11:02:58.721Z",
"org.opencontainers.image.description": "Simple, scalable AI model deployment on GPU clusters",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "899bea6697e88d47c0e646c4c05ffa95f3ca0bc6",
"org.opencontainers.image.source": "https://github.com/gpustack/gpustack",
"org.opencontainers.image.title": "gpustack",
"org.opencontainers.image.url": "https://github.com/gpustack/gpustack",
"org.opencontainers.image.version": "v0.6.2-npu"
},
"Shell": [
"/bin/bash",
"-eo",
"pipefail",
"-c"
]
},
"Architecture": "arm64",
"Os": "linux",
"Size": 19147931985,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/06cf932844aff130d571e89324fe58271626c2e4e70b33e6bdc212d72d7643f3/diff:/var/lib/docker/overlay2/0594c61b8f00f961f9157ebbf251a53df56bc5668b8a08369ce4692b13f9dfd2/diff:/var/lib/docker/overlay2/ca6658a62c174a5ca749eea7e2ea18f0522b64548286111010457c878d3714ca/diff:/var/lib/docker/overlay2/eb8aae3b6ddd912c5ca0306839be2c0c104db6aa5d5fceddf4e932acfacdec48/diff:/var/lib/docker/overlay2/4104c01c684bee0f23588170330ae3ebaaf476880ddec78744d789119cb61701/diff:/var/lib/docker/overlay2/f417d409543898b6c7a89df294587b5f67f46795e1f0e813e407251c3d9f1731/diff:/var/lib/docker/overlay2/6a2db75a4383d3951d727bc45b12ef5195eb8e7d3a59323e462f7baa616f895b/diff:/var/lib/docker/overlay2/53bd59266b9f2ddf9d5d6f301d87e39552b02227fc9534a35b8d1fd28ce4aaec/diff:/var/lib/docker/overlay2/7abbc0cd03d56ef997ec9072204f0137a1e0040ee90e7edaeeb0410be29c90ca/diff:/var/lib/docker/overlay2/c950532f94efde40b83dc604d477b4b7b3f3400bb22b79a11f9b543f7eedee3c/diff:/var/lib/docker/overlay2/71192bce97a2811c8f2d1c993b0ebf08c856c362679834b21880ffd238a314d5/diff:/var/lib/docker/overlay2/c254a5fd37082903febb8c19d87d305373503751f68345d27dccc09225baa74e/diff:/var/lib/docker/overlay2/7d428cf338692c5e442b2e1f7ffd9633185be368a3bda33eca107de555f55aa3/diff",
"MergedDir": "/var/lib/docker/overlay2/833c609a603c94686483fedd12f672a4680d82c6dad37363c9b21474b87b357b/merged",
"UpperDir": "/var/lib/docker/overlay2/833c609a603c94686483fedd12f672a4680d82c6dad37363c9b21474b87b357b/diff",
"WorkDir": "/var/lib/docker/overlay2/833c609a603c94686483fedd12f672a4680d82c6dad37363c9b21474b87b357b/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:1e7a4fd46befdfdb6bd98a60dada1bd3be4776c5732812530c91ee5be8e96727",
"sha256:8c4f3342a0d0e722c81b1190ae935f500d10afc85b79709be809db820e8a51dc",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:25d0f024c987390b198011ed2af7a1872a887d0ef4efaba0ef45163c334b7070",
"sha256:99cc9d3da2dbe716d69a276e6e34a8ad0fe2f0c37deec3433e497e9eed34a0aa",
"sha256:18bdc9c03a3d544c243ec30a32a42cbf1e3a3183a4f423c4116e32e75072bb92",
"sha256:e45f30d059a51dde835be6ae5b13467c0482a26d26ebad473f3b3ef93f32053a",
"sha256:c12d73bd03ba6531582701d211cf650692cd05041b413ed2db54dc64634161b5",
"sha256:8da2604526454bff0b0ce73535824756dd6e12e008fb0444cfa6074022c1e17f",
"sha256:a5fe895188a57d7881ce6a17d05a36d78f7e1f9aa16e4ca40b7e67be156c8bc4",
"sha256:4dcedfcee9a1915923ec2ad58419d39051cb5585719f8600a567107f636683e9",
"sha256:37dd2e7c71b27704c309d816c9b1e9d62ba26674961ac1c260dfa99c8a50e7fc",
"sha256:cbd6e33407816eaa3c105af4c6a2135fc20b1d5b59cdaa1db471ff7fe4c862a1",
"sha256:3b56c4611f62c22c0f93e79e3b2aa87d4f954d4d2f3ae6dddeb60a4f3363a604"
]
},
"Metadata": {
"LastTagTime": "2025-06-12T03:30:48.548564916+08:00"
}
}