镜像构建历史
# 2025-07-25 23:26:59 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-07-25 23:26:58 1.83GB
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-07-25 22:59:55 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/usr/bin/bash" "-c" "source /etc/profile && exec gpustack start \"$@\"" "--"]
# 2025-07-25 22:59:55 1.73KB 执行命令并创建新的镜像层
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.rc2 /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-07-21 23:03:26 1.94GB 执行命令并创建新的镜像层
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.rc2 /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-07-14 20:00:20 1.67GB 执行命令并创建新的镜像层
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.rc2 /bin/bash -eo pipefail -c # Patch vLLM
for dir in lib lib64; do
if [ -d "${PIPX_LOCAL_VENVS}/vllm/${dir}/python${PYTHON_VERSION}/site-packages/vllm" ]; then
cp /workspace/gpustack/gpustack/_sitecustomize.py ${PIPX_LOCAL_VENVS}/vllm/${dir}/python${PYTHON_VERSION}/site-packages/sitecustomize.py
fi
done
# buildkit
# 2025-07-06 11:47:05 17.90MB 复制新文件或目录到容器中
COPY /root/.local/share/pipx/venvs/vllm /root/.local/share/pipx/venvs/vllm # buildkit
# 2025-07-06 11:47:05 0.00B 设置环境变量 VLLM_VERSION VLLM_ASCEND_VERSION MINDIE_VERSION
ENV VLLM_VERSION=0.9.2 VLLM_ASCEND_VERSION=0.9.2rc1 MINDIE_VERSION=2.0.rc2
# 2025-07-06 11:47:05 0.00B 定义构建参数
ARG MINDIE_VERSION=2.0.rc2
# 2025-07-06 11:47:05 0.00B 定义构建参数
ARG VLLM_ASCEND_VERSION=0.9.2rc1
# 2025-07-06 11:47:05 0.00B 定义构建参数
ARG VLLM_VERSION=0.9.2
# 2025-07-06 11:47:05 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-07-06 11:45:17 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-07-06 11:35:52 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-07-06 11:19:49 0.00B 设置环境变量 CANN_VERSION CANN_CHIP CANN_HOME
ENV CANN_VERSION=8.1.rc1.beta1 CANN_CHIP=910b CANN_HOME=/usr/local/Ascend
# 2025-07-06 11:19:49 0.00B 定义构建参数
ARG CANN_CHIP=910b
# 2025-07-06 11:19:49 0.00B 定义构建参数
ARG CANN_VERSION=8.1.rc1.beta1
# 2025-07-06 11:19:49 0.00B 设置环境变量 PIPX_LOCAL_VENVS
ENV PIPX_LOCAL_VENVS=/root/.local/share/pipx/venvs
# 2025-07-06 11:19:49 345.96MB 执行命令并创建新的镜像层
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-07-06 11:12:55 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.11
# 2025-07-06 11:12:55 0.00B 定义构建参数
ARG PYTHON_VERSION=3.11
# 2025-07-06 11:12:55 474.63MB 执行命令并创建新的镜像层
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-07-06 11:12:36 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-07-06 11:12:19 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-07-06 11:12:19 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2025-07-06 11:12:19 542.70MB 执行命令并创建新的镜像层
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-07-06 11:12:19 0.00B 设置环境变量 DEBIAN_FRONTEND
ENV DEBIAN_FRONTEND=noninteractive
# 2025-07-06 11:12:19 0.00B 定义构建参数
ARG TARGETARCH=arm64
# 2025-07-06 11:12:19 0.00B 定义构建参数
ARG TARGETOS=linux
# 2025-07-06 11:12:19 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/arm64
# 2025-07-06 11:12:19 0.00B
SHELL [/bin/bash -eo pipefail -c]
# 2025-06-20 18:18:37 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-06-20 18:18:37 69.23MB
/bin/sh -c #(nop) ADD file:420f880e94b721d5d51db26959a0be413bb646cea8a083b48bc7ac884c7fd405 in /
# 2025-06-20 18:18:35 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2025-06-20 18:18:35 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-06-20 18:18:35 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-06-20 18:18:35 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:e05ceec8bd3e812a825f98d9523a7641bf86f752785388d06c5aea8ab6e24876",
"RepoTags": [
"gpustack/gpustack:v0.7.0-npu",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack:v0.7.0-npu-linuxarm64"
],
"RepoDigests": [
"gpustack/gpustack@sha256:4542a8da2c7cf70daca0371f9c63cee9b46c62663c16cb949e0c1d26ba742289",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack@sha256:d5d79445178b8612ef00fc10bfaddd4eeb014c9488b67943eb4ebe9420b95e29"
],
"Parent": "",
"Comment": "buildkit.exporter.image.v0",
"Created": "2025-07-25T15:26:59.01387105Z",
"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.rc2"
],
"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-07-25T14:56:12.511Z",
"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": "13f96d7e6f6a53be8554bc8856806e0777f763de",
"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.7.0-npu"
},
"Shell": [
"/bin/bash",
"-eo",
"pipefail",
"-c"
]
},
"Architecture": "arm64",
"Os": "linux",
"Size": 19101507332,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/4c8c2c570f5e8f5d05abce5df667646289effdaac4dce93d2c56ee82bc148da1/diff:/var/lib/docker/overlay2/4c780535c09860993993d258c86dd63efbdedc2f2b2a34b517d0758b391acb10/diff:/var/lib/docker/overlay2/b0b4511eaf0f07fbcc9f6990eaf6d32e23d82ac769acf169161b04965e82f131/diff:/var/lib/docker/overlay2/ffd84a476728581519d01e598e00f052844bab816f72b4a10fa157a9edbd9607/diff:/var/lib/docker/overlay2/d46dee7cecb30da8a8c9a0d37e981f5f25d4f917736a7f3cdf380c32d6643e20/diff:/var/lib/docker/overlay2/dc26fa10495fafce2cfedf6a15cc1de15ad013e37728c10b0db98c96ef5ed0f8/diff:/var/lib/docker/overlay2/6b88027ff59682f9a818ddae658808dc63d3cdf44d80b1dffba1460fa10cd1fa/diff:/var/lib/docker/overlay2/9aaec738846490b0bd10e5707af626e3817904fe30fe357ef2bfa7321aa25bde/diff:/var/lib/docker/overlay2/3bb7a0bfe9c95c83e1b32a46d894e07a76cd6392669e946a07c6a67a65cbda6c/diff:/var/lib/docker/overlay2/0fc274dab4d93f362e38dedd20f2dfd8b2626db07fe37360e24829ae62c66c1e/diff:/var/lib/docker/overlay2/6d96d5d543dc5234e2fa1c5af9d667ea049add9b131880eaad3c6ab764c4b853/diff:/var/lib/docker/overlay2/2f70af3470c43c1c4fa8e36759abdf0e2685652be49196d9b7c1450c7a13b75b/diff:/var/lib/docker/overlay2/6c2d93de2ac7a1577ba53181a109365920334a52d4dce19048e5867b7521aed6/diff:/var/lib/docker/overlay2/56e5d8992c6aebcb1d889e9b677fbd8e98e724eb36cb7bd4daadf9ecf715fa67/diff",
"MergedDir": "/var/lib/docker/overlay2/61f6c17b09b996dff1bb956c7e3703df18aec45a68c878d57a68c34e8d5e7ec4/merged",
"UpperDir": "/var/lib/docker/overlay2/61f6c17b09b996dff1bb956c7e3703df18aec45a68c878d57a68c34e8d5e7ec4/diff",
"WorkDir": "/var/lib/docker/overlay2/61f6c17b09b996dff1bb956c7e3703df18aec45a68c878d57a68c34e8d5e7ec4/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:da078358135587e5232cc14569f6796d919db5a68d6348694a756d3a2626e0d8",
"sha256:70b8a251aaf3a2356cd2a5462e5c27373fae9def0d056018bf00f0a2d85ad704",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:b913be7aa57f2bcc0c794eede1391c464dbe0efd2d6fc56ecd85328057226963",
"sha256:c4186097ba26b59089dd60bb9d4d7b3b184c3bc072e62c49c103dd7d59324471",
"sha256:9b357c5b6e60826a1a5ca63f1591131310156b93fe6341b12c0ad6ec54533de0",
"sha256:ffb20cd28e64810744b3f34949cb0ccd79b9e94cfb75bacaedb578e1071899d8",
"sha256:f9698c296bbaf7a558e48208164cbf17ed605cb208978a0691034af9b0e61231",
"sha256:317267f9d7987afc1465f6f7db0c2f1f9eedce7d86563b213755dce499dc5d8c",
"sha256:c97e173d575d31ba1a5c14a1351c12a6d76a52a86b5701241b0eba1b720518e3",
"sha256:4c0067fde610df239c633004eed3ff5d6859fdea77a5d56d34591226298add4a",
"sha256:dd5a2da0d6b45fb359861eda80c294ab1cdf63c36e68662098541af718adfd42",
"sha256:f28675722f630c0c42c148053fbc1f12ce0a42c51beb775c5552ba5a50ee3939",
"sha256:a0223e36f265aee8ff3967cf60acc589d54d63dc86fb2a870afc5ccc95b0e150",
"sha256:114f17d88650e8ffbed824530484d7880afcb4ff2499781719b019dd0eede9a2"
]
},
"Metadata": {
"LastTagTime": "2025-07-30T02:17:50.326808132+08:00"
}
}