镜像构建历史
# 2026-10-21 12:47:34 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/usr/bin/entrypoint.sh"]
# 2026-10-21 12:47:34 0.00B 设置工作目录为/
WORKDIR /
# 2026-10-21 12:47:34 0.00B 设置环境变量 KUBE_FEATURE_WatchListClient
ENV KUBE_FEATURE_WatchListClient=false
# 2026-10-21 12:47:34 464.68MB 执行命令并创建新的镜像层
RUN |10 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 GOPROXY=https://proxy.golang.org,direct PROMETHEUS_VERSION=3.5.1 GRAFANA_VERSION=12.2.4 UI_DOWNLOAD=true GPUSTACK_RUNTIME_DOCKER_MIRRORED_NAME_FILTER_LABELS=org.opencontainers.image.source=https://github.com/gpustack/gpustack;org.opencontainers.image.version=v2.3.0rc4;org.opencontainers.image.revision=173bb26cc44d8e7c1f1bfffc8154c46d35f0606b;org.opencontainers.image.created=2026-10-21T04:41:10.378Z; /bin/bash -eo pipefail -c # Install the user documentation
# Beside the UI inside the installed package, which is where
# gpustack.routes.ui looks for it. The wheel deliberately does not carry the
# site -- see .gitignore and the artifacts list in pyproject.toml -- so the
# image is what places it.
cp -a /tmp/help "$(python3 -c 'import importlib.util; print(next(iter(importlib.util.find_spec("gpustack").submodule_search_locations)))')/help"
# buildkit
# 2026-10-21 12:47:32 1.59KB 复制新文件或目录到容器中
COPY --chmod=755 pack/entrypoint.sh /usr/bin/entrypoint.sh # buildkit
# 2026-10-21 12:47:32 144.37MB 复制新文件或目录到容器中
COPY /usr/bin/gpustack-operator /usr/bin/gpustack-operator # buildkit
# 2026-10-21 12:47:31 0.00B 设置环境变量 GPUSTACK_RUNTIME_LOG_EXCEPTION GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_ENVIRONMENTS GPUSTACK_RUNTIME_DEPLOY_CORRECT_RUNNER_IMAGE GPUSTACK_RUNTIME_DOCKER_IMAGE_NO_PULL_VISUALIZATION GPUSTACK_RUNTIME_DOCKER_MIRRORED_NAME_FILTER_LABELS
ENV GPUSTACK_RUNTIME_LOG_EXCEPTION=false GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY=/var/run/cdi GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/var/run/cdi;/usr/local/PPU_SDK;/opt/maca;/usr/local/corex;/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_ENVIRONMENTS=NVIDIA_MIG_CONFIG_DEVICES;NVIDIA_MIG_MONITOR_DEVICES GPUSTACK_RUNTIME_DEPLOY_CORRECT_RUNNER_IMAGE=false GPUSTACK_RUNTIME_DOCKER_IMAGE_NO_PULL_VISUALIZATION=true GPUSTACK_RUNTIME_DOCKER_MIRRORED_NAME_FILTER_LABELS=org.opencontainers.image.source=https://github.com/gpustack/gpustack;org.opencontainers.image.version=v2.3.0rc4;org.opencontainers.image.revision=173bb26cc44d8e7c1f1bfffc8154c46d35f0606b;org.opencontainers.image.created=2026-10-21T04:41:10.378Z;
# 2026-10-21 12:47:31 0.00B 定义构建参数
ARG GPUSTACK_RUNTIME_DOCKER_MIRRORED_NAME_FILTER_LABELS=org.opencontainers.image.source=https://github.com/gpustack/gpustack;org.opencontainers.image.version=v2.3.0rc4;org.opencontainers.image.revision=173bb26cc44d8e7c1f1bfffc8154c46d35f0606b;org.opencontainers.image.created=2026-10-21T04:41:10.378Z;
# 2026-10-21 12:47:31 0.00B 设置环境变量 PPU_HOME LD_LIBRARY_PATH GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV PPU_HOME=/usr/local/PPU_SDK LD_LIBRARY_PATH=/usr/local/PPU_SDK/CUDA_SDK/lib64:/usr/local/PPU_SDK/lib:/opt/maca/lib:/opt/mxdriver/lib:/usr/local/corex/lib64:/usr/local/neuware/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64: GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/usr/local/PPU_SDK;/opt/maca;/usr/local/corex;/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 NVIDIA_DISABLE_REQUIRE NVIDIA_VISIBLE_DEVICES NVIDIA_DRIVER_CAPABILITIES
ENV NVIDIA_DISABLE_REQUIRE=true NVIDIA_VISIBLE_DEVICES=all NVIDIA_DRIVER_CAPABILITIES=compute,utility
# 2026-10-21 12:47:31 0.00B 设置环境变量 MTHREADS_VISIBLE_DEVICES MTHREADS_DRIVER_CAPABILITIES
ENV MTHREADS_VISIBLE_DEVICES=all MTHREADS_DRIVER_CAPABILITIES=compute,utility
# 2026-10-21 12:47:31 0.00B 设置环境变量 LD_LIBRARY_PATH GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV LD_LIBRARY_PATH=/opt/maca/lib:/opt/mxdriver/lib:/usr/local/corex/lib64:/usr/local/neuware/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64: GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/opt/maca;/usr/local/corex;/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 IX_VISIBLE_DEVICES COREX_HOME LD_LIBRARY_PATH GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV IX_VISIBLE_DEVICES=all COREX_HOME=/usr/local/corex LD_LIBRARY_PATH=/usr/local/corex/lib64:/usr/local/neuware/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64: GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/usr/local/corex;/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 HYGON_VISIBLE_DEVICES GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV HYGON_VISIBLE_DEVICES=all GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 CAMBRICON_VISIBLE_DEVICES NEUWARE_HOME LD_LIBRARY_PATH GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV CAMBRICON_VISIBLE_DEVICES=all NEUWARE_HOME=/usr/local/neuware LD_LIBRARY_PATH=/usr/local/neuware/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64: GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 ASCEND_HOME_PATH LD_LIBRARY_PATH GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64: GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 0.00B 设置环境变量 AMD_VISIBLE_DEVICES GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES
ENV AMD_VISIBLE_DEVICES=all GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/opt/rocm;/opt/rocm/lib
# 2026-10-21 12:47:31 3.97MB 执行命令并创建新的镜像层
RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 GOPROXY=https://proxy.golang.org,direct PROMETHEUS_VERSION=3.5.1 GRAFANA_VERSION=12.2.4 UI_DOWNLOAD=true /bin/bash -eo pipefail -c # Reinstall amd-smi
export UV_SYSTEM_PYTHON=1
export UV_PRERELEASE=allow
uv pip install --no-build-isolation \
/opt/rocm/share/amd_smi
uv pip tree
# Hack to avoid: Fail to open libdrm_amdgpu.so: libdrm_amdgpu.so: cannot open shared object file: No such file or directory
TARGET_DIR="/usr/lib/$(uname -m)-linux-gnu"
TARGET_LIB="libdrm_amdgpu.so.1"
TARGET_LINK="libdrm_amdgpu.so"
TARGET_LIB_EXISTED="true"
if [[ ! -e "${TARGET_DIR}/${TARGET_LIB}" ]]; then
TARGET_LIB_EXISTED="false"
touch "${TARGET_DIR}/${TARGET_LIB}"
fi
pushd "${TARGET_DIR}" \
&& ln -sf "${TARGET_LIB}" "${TARGET_LINK}"
if [[ "${TARGET_LIB_EXISTED}" == "false" ]]; then
rm -f "${TARGET_DIR}/${TARGET_LIB}"
fi
# buildkit
# 2026-10-21 12:47:30 700.46MB 执行命令并创建新的镜像层
RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 GOPROXY=https://proxy.golang.org,direct PROMETHEUS_VERSION=3.5.1 GRAFANA_VERSION=12.2.4 UI_DOWNLOAD=true /bin/bash -eo pipefail -c # Install GPUStack
export POETRY_NO_CACHE=0
export UV_NO_CACHE=0
export UV_SYSTEM_PYTHON=1
export UV_LINK_MODE=copy
export UI_DOWNLOAD=${UI_DOWNLOAD}
# Build GPUStack
cd /workspace/gpustack \
&& git config --global --add safe.directory /workspace/gpustack \
&& make build
# Install GPUStack.
uv pip install --no-build-isolation --extra-index-url https://download.pytorch.org/whl/cpu/ \
/workspace/gpustack/dist/*.whl
# Download tools
gpustack download-tools
tree -hs "$(pip show gpustack | grep Location: | head -n 1 | cut -d" " -f 2)/gpustack/third_party"
# Set up environment
# 0711, not 0700: the embedded PostgreSQL runs as its own user and must
# traverse the data dir to reach <data_dir>/postgresql. Listing is denied
# to everyone else, the credential files inside are 0600, and a fresh
# named volume initialized from this directory inherits its mode.
mkdir -p /var/lib/gpustack \
&& chmod -R 0711 /var/lib/gpustack
# Review
uv pip tree \
--package gpustack
gpustack version
# Try to update PCI IDs
if ! update-pciids; then
curl -o /usr/share/misc/pci.ids https://pci-ids.ucw.cz/v2.2/pci.ids || true
fi
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /workspace/gpustack/dist
# buildkit
# 2026-10-16 20:39:48 0.00B 定义构建参数
ARG UI_DOWNLOAD=true
# 2026-10-16 20:39:48 1.03GB 执行命令并创建新的镜像层
RUN |8 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 GOPROXY=https://proxy.golang.org,direct PROMETHEUS_VERSION=3.5.1 GRAFANA_VERSION=12.2.4 /bin/bash -eo pipefail -c set -eux
apt-get update -y && apt-get install -y --no-install-recommends \
fontconfig
case "${TARGETARCH}" in
amd64)
PROM_ARCH="amd64"
GRAFANA_ARCH="amd64"
;;
arm64)
PROM_ARCH="arm64"
GRAFANA_ARCH="arm64"
;;
*)
echo "Unsupported TARGETARCH: ${TARGETARCH}"
exit 1
;;
esac
curl --retry 3 --retry-connrefused -fL \
"https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-${PROM_ARCH}.tar.gz" \
| tar -zx -C /opt
mv "/opt/prometheus-${PROMETHEUS_VERSION}.linux-${PROM_ARCH}" /opt/prometheus
ln -s /opt/prometheus/prometheus /usr/local/bin/prometheus
ln -s /opt/prometheus/promtool /usr/local/bin/promtool
curl --retry 3 --retry-connrefused -fL \
"https://dl.grafana.com/oss/release/grafana-${GRAFANA_VERSION}.linux-${GRAFANA_ARCH}.tar.gz" \
| tar -zx -C /opt
mv "/opt/grafana-${GRAFANA_VERSION}" /opt/grafana
ln -s /opt/grafana/bin/grafana-server /usr/local/bin/grafana-server
ln -s /opt/grafana/bin/grafana-cli /usr/local/bin/grafana-cli
mkdir -p /etc/grafana
cp /opt/grafana/conf/sample.ini /etc/grafana/grafana.ini.sample
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-10-16 20:39:34 0.00B 定义构建参数
ARG GRAFANA_VERSION=12.2.4
# 2026-10-16 20:39:34 0.00B 定义构建参数
ARG PROMETHEUS_VERSION=3.5.1
# 2026-10-16 20:39:34 38.36MB 执行命令并创建新的镜像层
RUN |6 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 GOPROXY=https://proxy.golang.org,direct /bin/bash -eo pipefail -c # Skopeo
# Install Go
curl --retry 3 --retry-connrefused -fL "https://go.dev/dl/go1.23.3.${TARGETOS}-${TARGETARCH}.tar.gz" | tar -zx -C /usr/local
export PATH="/usr/local/go/bin:${PATH}"
export GOPROXY="${GOPROXY}"
export
# Download
git -C /tmp clone --recursive --shallow-submodules \
--depth 1 --branch v1.20.0 --single-branch \
https://github.com/containers/skopeo.git skopeo
# Build and install
pushd /tmp/skopeo \
&& sed -i "/export GOPROXY=.*/d" Makefile \
&& make vendor \
&& DISABLE_DOCS=1 PREFIX=/usr make install-binary
# Configure Skopeo to allow insecure registries.
mkdir -p /etc/containers
cat<<EOT > /etc/containers/policy.json
{
"default": [
{
"type": "insecureAcceptAnything"
}
]
}
EOT
# Review
skopeo --version
# Cleanup go
go clean -cache -modcache -testcache \
&& rm -rf /usr/local/go \
&& rm -rf /root/.cache/go-build
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-10-16 20:38:38 0.00B 定义构建参数
ARG GOPROXY=https://proxy.golang.org,direct
# 2026-10-16 20:38:38 436.74KB 复制新文件或目录到容器中
COPY docker-compose/grafana/grafana_dashboards/ /etc/dashboards/ # buildkit
# 2026-10-16 20:38:38 42.95KB 复制新文件或目录到容器中
COPY pack/rootfs/ / # buildkit
# 2026-07-07 15:35:13 1.19GB 执行命令并创建新的镜像层
RUN |5 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 /bin/bash -eo pipefail -c # Prepare Higress standalone components
set -eux;
# Install API server
cp /mnt/apiserver /usr/local/bin/apiserver;
# Install controller
cp /mnt/higress /usr/local/bin/higress;
# Install pilot
cp /mnt/pilot/pilot-discovery /usr/local/bin/pilot-discovery;
cp /mnt/pilot/higress-pilot-start.sh /usr/local/bin/higress-pilot-start.sh;
# Install gateway
mkdir -p /var/lib/istio/envoy/
cp /mnt/gateway/var/lib/istio/envoy/*.json /var/lib/istio/envoy/;
cp /mnt/gateway/var/lib/istio/envoy/*.so /var/lib/istio/envoy/;
cp /mnt/gateway/usr/local/bin/pilot-agent /usr/local/bin/pilot-agent;
cp /mnt/gateway/usr/local/bin/envoy /usr/local/bin/envoy;
cp /mnt/gateway/usr/local/bin/supercronic-linux-${TARGETARCH} /usr/local/bin/;
ln -s supercronic-linux-${TARGETARCH} supercronic && mv supercronic /usr/local/bin/;
# buildkit
# 2026-07-07 15:35:07 240.67MB 执行命令并创建新的镜像层
RUN |5 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 /bin/bash -eo pipefail -c set -eux
# Add PostgreSQL APT repository
wget -O /tmp/ACCC4CF8.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc \
&& gpg --dearmor /tmp/ACCC4CF8.asc \
&& mv /tmp/ACCC4CF8.asc.gpg /usr/share/keyrings/postgresql-archive-keyring.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# Install
apt-get update -y && apt-get install -y --no-install-recommends \
postgresql-17 \
gosu
# Create symlinks for PostgreSQL 17 to simplify usage
ln -s /usr/lib/postgresql/17/bin /usr/lib/postgresql/bin \
&& ln -s /etc/postgresql/17/main /etc/postgresql/main \
&& ln -s /var/lib/postgresql/17/main /var/lib/postgresql/main \
&& ls -1 /usr/lib/postgresql/bin/ | xargs -I @ ln -sf /usr/lib/postgresql/bin/@ /usr/bin/@
gosu postgres echo "listen_addresses='*'" >> "$PGCONFIG_FILE" \
&& gosu postgres echo "local all postgres peer" > /etc/postgresql/main/pg_hba.conf \
&& gosu postgres echo "host all root 127.0.0.1/32 trust" >> /etc/postgresql/main/pg_hba.conf \
&& gosu postgres echo "host all root ::1/128 trust" >> /etc/postgresql/main/pg_hba.conf \
&& gosu postgres echo "host all all 0.0.0.0/0 scram-sha-256" >> /etc/postgresql/main/pg_hba.conf
# Logging: emit one file per calendar day with a readable date name and
# disable size-based rotation so a busy day stays in a single file.
# Postgres' own rotation never deletes old logs (that is what let them
# grow to 18GB, issue #5774) — retention is enforced out-of-band by the
# supercronic cleanup job in /var/lib/istio/cron.txt.
gosu postgres sed -i "s/^data_directory/#data_directory/" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s/^hba_file/#hba_file/" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s/^#log_destination/log_destination/" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s/^#logging_collector = off/logging_collector = on/" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s|^[# ]*log_filename.*|log_filename = 'postgresql-%Y-%m-%d.log'|" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s|^[# ]*log_rotation_age.*|log_rotation_age = 1d|" "$PGCONFIG_FILE" \
&& gosu postgres sed -i "s|^[# ]*log_rotation_size.*|log_rotation_size = 0|" "$PGCONFIG_FILE"
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-05-15 17:15:55 5.62KB 执行命令并创建新的镜像层
RUN |5 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 /bin/bash -eo pipefail -c set -eux; groupadd -r postgres --gid=9999; useradd -r -g postgres --uid=9999 --home-dir=/var/lib/postgresql --shell=/bin/bash postgres; mkdir -p /var/lib/postgresql; chown -R postgres:postgres /var/lib/postgresql # buildkit
# 2026-05-15 17:15:55 0.00B 设置环境变量 PGCONFIG_FILE POSTGRES_DB
ENV PGCONFIG_FILE=/etc/postgresql/main/postgresql.conf POSTGRES_DB=gpustack
# 2026-05-15 17:15:55 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/gpustack]
# 2026-05-15 17:15:55 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-05-15 17:15:55 0.00B 定义构建参数
ARG TARGETOS=linux
# 2026-05-15 17:15:55 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/amd64
# 2026-05-15 17:15:55 0.00B
SHELL [/bin/bash -eo pipefail -c]
# 2026-05-15 17:15:55 0.00B 设置环境变量 S6_KEEP_ENV S6_BEHAVIOUR_IF_STAGE2_FAILS S6_SERVICES_GRACETIME S6_KILL_GRACETIME S6_VERBOSITY S6_CMD_WAIT_FOR_SERVICES
ENV S6_KEEP_ENV=1 S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_SERVICES_GRACETIME=3000 S6_KILL_GRACETIME=3000 S6_VERBOSITY=1 S6_CMD_WAIT_FOR_SERVICES=1
# 2026-05-15 17:15:55 5.30MB 执行命令并创建新的镜像层
RUN |5 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 S6_OVERLAY_VERSION=3.2.1.0 /bin/bash -eo pipefail -c set -eux; case "${TARGETARCH}" in amd64) S6_ARCH="x86_64" ;; arm64) S6_ARCH="aarch64" ;; arm/v7) S6_ARCH="armhf" ;; arm/v6) S6_ARCH="arm" ;; *) echo >&2 "⚠️ Warning: Unknown TARGETARCH='${TARGETARCH}', defaulting to x86_64"; S6_ARCH="x86_64"; ;; esac; echo "Installing s6-overlay ${S6_OVERLAY_VERSION} for arch: ${S6_ARCH} (from TARGETARCH=${TARGETARCH})"; base_url="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}"; for pkg in noarch ${S6_ARCH}; do wget -q -O "/tmp/s6-overlay-${pkg}.tar.xz" "${base_url}/s6-overlay-${pkg}.tar.xz"; done && echo "📦 Extracting s6-overlay ..." && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-${S6_ARCH}.tar.xz && rm -f /tmp/s6-overlay-*.tar.xz && echo "Installed s6-overlay ${S6_OVERLAY_VERSION} successfully." # buildkit
# 2026-05-15 17:15:54 0.00B 定义构建参数
ARG S6_OVERLAY_VERSION=3.2.1.0
# 2026-05-15 17:15:54 223.62MB 执行命令并创建新的镜像层
RUN |4 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 /bin/bash -eo pipefail -c # Buildkit
cat <<EOT >/tmp/requirements.txt
build
cmake<4
ninja<1.11
setuptools<80
setuptools-scm
packaging<25
wheel
pybind11<3
Cython
psutil
pipx
uv
yq
hatchling
py-spy
poetry
EOT
pip install -r /tmp/requirements.txt
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/*
# buildkit
# 2026-05-15 17:15:45 0.00B 设置环境变量 PIP_NO_CACHE_DIR PIP_DISABLE_PIP_VERSION_CHECK PIP_ROOT_USER_ACTION PIPX_HOME PIPX_LOCAL_VENVS POETRY_NO_CACHE UV_NO_CACHE UV_HTTP_TIMEOUT UV_INDEX_STRATEGY
ENV PIP_NO_CACHE_DIR=1 PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore PIPX_HOME=/root/.local/share/pipx PIPX_LOCAL_VENVS=/root/.local/share/pipx/venvs POETRY_NO_CACHE=1 UV_NO_CACHE=1 UV_HTTP_TIMEOUT=500 UV_INDEX_STRATEGY=unsafe-best-match
# 2026-05-15 17:15:45 104.58MB 执行命令并创建新的镜像层
RUN |4 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.11 /bin/bash -eo pipefail -c # Python
if (( $(echo "$(python3 --version | cut -d' ' -f2 | cut -d'.' -f1,2) == ${PYTHON_VERSION}" | bc -l) )); then
echo "Skipping Python upgrade for ${PYTHON_VERSION}..."
if [[ -z "$(ldconfig -v 2>/dev/null | grep libpython${PYTHON_VERSION})" ]]; then
PYTHON_LIB_PREFIX=$(python3 -c "import sys; print(sys.base_prefix);")
echo "${PYTHON_LIB_PREFIX}/lib" >> /etc/ld.so.conf.d/python3.conf
echo "${PYTHON_LIB_PREFIX}/lib64" >> /etc/ld.so.conf.d/python3.conf
ldconfig -v
fi
exit 0
fi
# Add deadsnakes PPA for Python versions
for i in 1 2 3; do
add-apt-repository -y ppa:deadsnakes/ppa && break || { echo "Attempt $i failed, retrying in 5s..."; sleep 5; }
done
apt-get update -y
# Install
apt-get install -y --no-install-recommends \
python${PYTHON_VERSION} \
python${PYTHON_VERSION}-dev \
python${PYTHON_VERSION}-venv \
python${PYTHON_VERSION}-lib2to3 \
python${PYTHON_VERSION}-gdbm \
python${PYTHON_VERSION}-tk
if (( $(echo "${PYTHON_VERSION} <= 3.11" | bc -l) )); then
apt-get install -y --no-install-recommends \
python${PYTHON_VERSION}-distutils
fi
# Update alternatives
if [[ -f /etc/alternatives/python3 ]]; then update-alternatives --remove-all python3; fi; update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1
if [[ -f /etc/alternatives/python ]]; then update-alternatives --remove-all python; fi; update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
curl -sS "https://bootstrap.pypa.io/get-pip.py" | python${PYTHON_VERSION}
if [[ -f /etc/alternatives/2to3 ]]; then update-alternatives --remove-all 2to3; fi; update-alternatives --install /usr/bin/2to3 2to3 /usr/bin/2to3${PYTHON_VERSION} 1 || true
if [[ -f /etc/alternatives/pydoc3 ]]; then update-alternatives --remove-all pydoc3; fi; update-alternatives --install /usr/bin/pydoc3 pydoc3 /usr/bin/pydoc${PYTHON_VERSION} 1 || true
if [[ -f /etc/alternatives/idle3 ]]; then update-alternatives --remove-all idle3; fi; update-alternatives --install /usr/bin/idle3 idle3 /usr/bin/idle${PYTHON_VERSION} 1 || true
if [[ -f /etc/alternatives/python3-config ]]; then update-alternatives --remove-all python3-config; fi; update-alternatives --install /usr/bin/python3-config python3-config /usr/bin/python${PYTHON_VERSION}-config 1 || true
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-05-15 17:15:29 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.11
# 2026-05-15 17:15:29 0.00B 定义构建参数
ARG PYTHON_VERSION=3.11
# 2026-05-15 17:15:29 655.42MB 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /bin/bash -eo pipefail -c # C buildkit
# Install
apt-get install -y --no-install-recommends \
make ninja-build pkg-config ccache
curl --retry 3 --retry-connrefused -fL "https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-linux-$(uname -m).tar.gz" | tar -zx -C /usr --strip-components 1
# Install dependencies
apt-get install -y --no-install-recommends \
openssl libssl-dev \
zlib1g zlib1g-dev libbz2-dev libffi-dev \
lzma lzma-dev uuid-dev liblzma-dev \
ffmpeg libjpeg-dev libpng-dev libtiff-dev libwebp-dev \
libsqlite3-dev \
libxml2 libxslt1-dev \
libnuma1 libnuma-dev \
libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev \
libjemalloc-dev
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-05-15 17:15:07 0.00B 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /bin/bash -eo pipefail -c # GCC
# Upgrade GCC if the Ubuntu version is lower than 21.04.
source /etc/os-release
if (( $(echo "${VERSION_ID} >= 21.04" | bc -l) )); then
echo "Skipping GCC upgrade for ${VERSION_ID}..."
exit 0
fi
# 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
# buildkit
# 2026-05-15 17:15:06 650.97MB 执行命令并创建新的镜像层
RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /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 \
vim jq bc tree \
logrotate cron netcat-openbsd
# Update locale
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
# Update timezone
rm -f /etc/localtime \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& dpkg-reconfigure --frontend noninteractive tzdata
# Cleanup
rm -rf /var/tmp/* \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apt
# buildkit
# 2026-05-15 17:15:06 0.00B 设置环境变量 DEBIAN_FRONTEND LANG LANGUAGE LC_ALL
ENV DEBIAN_FRONTEND=noninteractive LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2026-05-15 17:15:06 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-05-15 17:15:06 0.00B 定义构建参数
ARG TARGETOS=linux
# 2026-05-15 17:15:06 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/amd64
# 2026-05-15 17:15:06 0.00B
SHELL [/bin/bash -eo pipefail -c]
# 2026-02-11 00:49:57 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2026-02-11 00:49:56 78.13MB
/bin/sh -c #(nop) ADD file:1ae27d2ef4369361104b699712f3897141e394785df5d193d67b44626f57eb87 in /
# 2026-02-11 00:49:54 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04
# 2026-02-11 00:49:54 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2026-02-11 00:49:54 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2026-02-11 00:49:54 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:b3065e2474569990eed71969c5650423ff05051912e373dd72b113fe027cd962",
"RepoTags": [
"gpustack/gpustack:v2.3.0rc4",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack:v2.3.0rc4"
],
"RepoDigests": [
"gpustack/gpustack@sha256:b52a3e8e50a9dd11cf00dcf2482ad88380b2abc9e36421e7563a002e255c542e",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack@sha256:6d306185350ce73d480e397762769b7ec4d8c12ca56eb864ed68ee01537585f9"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-21T04:47:34.454108453Z",
"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",
"PIP_NO_CACHE_DIR=1",
"PIP_DISABLE_PIP_VERSION_CHECK=1",
"PIP_ROOT_USER_ACTION=ignore",
"PIPX_HOME=/root/.local/share/pipx",
"PIPX_LOCAL_VENVS=/root/.local/share/pipx/venvs",
"POETRY_NO_CACHE=1",
"UV_NO_CACHE=1",
"UV_HTTP_TIMEOUT=500",
"UV_INDEX_STRATEGY=unsafe-best-match",
"S6_KEEP_ENV=1",
"S6_BEHAVIOUR_IF_STAGE2_FAILS=2",
"S6_SERVICES_GRACETIME=3000",
"S6_KILL_GRACETIME=3000",
"S6_VERBOSITY=1",
"S6_CMD_WAIT_FOR_SERVICES=1",
"PGCONFIG_FILE=/etc/postgresql/main/postgresql.conf",
"POSTGRES_DB=gpustack",
"AMD_VISIBLE_DEVICES=all",
"GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES=/var/run/cdi;/usr/local/PPU_SDK;/opt/maca;/usr/local/corex;/opt/dtk;/etc/dmi_mig_config;/usr/local/neuware;/usr/local/Ascend/ascend-toolkit;/opt/rocm;/opt/rocm/lib",
"ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest",
"LD_LIBRARY_PATH=/usr/local/PPU_SDK/CUDA_SDK/lib64:/usr/local/PPU_SDK/lib:/opt/maca/lib:/opt/mxdriver/lib:/usr/local/corex/lib64:/usr/local/neuware/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64:",
"CAMBRICON_VISIBLE_DEVICES=all",
"NEUWARE_HOME=/usr/local/neuware",
"HYGON_VISIBLE_DEVICES=all",
"IX_VISIBLE_DEVICES=all",
"COREX_HOME=/usr/local/corex",
"MTHREADS_VISIBLE_DEVICES=all",
"MTHREADS_DRIVER_CAPABILITIES=compute,utility",
"NVIDIA_DISABLE_REQUIRE=true",
"NVIDIA_VISIBLE_DEVICES=all",
"NVIDIA_DRIVER_CAPABILITIES=compute,utility",
"PPU_HOME=/usr/local/PPU_SDK",
"GPUSTACK_RUNTIME_LOG_EXCEPTION=false",
"GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY=/var/run/cdi",
"GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT=true",
"GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_ENVIRONMENTS=NVIDIA_MIG_CONFIG_DEVICES;NVIDIA_MIG_MONITOR_DEVICES",
"GPUSTACK_RUNTIME_DEPLOY_CORRECT_RUNNER_IMAGE=false",
"GPUSTACK_RUNTIME_DOCKER_IMAGE_NO_PULL_VISUALIZATION=true",
"GPUSTACK_RUNTIME_DOCKER_MIRRORED_NAME_FILTER_LABELS=org.opencontainers.image.source=https://github.com/gpustack/gpustack;org.opencontainers.image.version=v2.3.0rc4;org.opencontainers.image.revision=173bb26cc44d8e7c1f1bfffc8154c46d35f0606b;org.opencontainers.image.created=2026-10-21T04:41:10.378Z;",
"KUBE_FEATURE_WatchListClient=false"
],
"Cmd": null,
"Image": "",
"Volumes": {
"/var/lib/gpustack": {}
},
"WorkingDir": "/",
"Entrypoint": [
"/usr/bin/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2026-10-21T04:41:10.378Z",
"org.opencontainers.image.description": "A GPU cluster manager for high-performance AI model serving (vLLM, SGLang) and on-demand SSH-accessible GPU instances.",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "173bb26cc44d8e7c1f1bfffc8154c46d35f0606b",
"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": "v2.3.0rc4"
},
"Shell": [
"/bin/bash",
"-eo",
"pipefail",
"-c"
]
},
"Architecture": "amd64",
"Os": "linux",
"Size": 5531814944,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/a3cd40ea8349c7380c15c5b1a44044257a32496ea74bbe00e79f4e4e6d55134b/diff:/var/lib/docker/overlay2/29545e8e5b54893f897e75b9b823dd63b4f0b59cad2a93661089b75dd031555f/diff:/var/lib/docker/overlay2/258abbfe7a5d7b9bda8bde8627923a5d1c4ec397fdac73c0329d1feb10036742/diff:/var/lib/docker/overlay2/4f2e08c13a368219915261a59cbc7dbc559fb80dbacf3b74ee3bd6db6355e1c5/diff:/var/lib/docker/overlay2/46de5de5a67378d9af11ef25530d5d05cb886587bb9ab87cb8e850e136684195/diff:/var/lib/docker/overlay2/e02c2511ab736054d1ee1c1406e412f217ada8aad51b5a2c610912ea714af83f/diff:/var/lib/docker/overlay2/16bde94aa56159fe99edae74c959910f48dd3dc48fe74b61dac26beefac763ed/diff:/var/lib/docker/overlay2/7474845abf6eec2e063f6ab1966b50ef4a6c8ff1500b215f1da5408a41cfe2c7/diff:/var/lib/docker/overlay2/80025f0d845a4ad577fd5747c302593772a56f4d5924924ed487cbae9a7c82b1/diff:/var/lib/docker/overlay2/0c2c27ed0de61b6935ab72a57d068f49622a60384aeb822b23a9df32743e68fd/diff:/var/lib/docker/overlay2/856b5451d9017e8f2a31b2add955874e50a5753c6a94ebec88401bdd57e32e4c/diff:/var/lib/docker/overlay2/62d06ad98ca2329a0d5a3f9b70fa1e8361b7ac031e4f60c27d01429047062fb9/diff:/var/lib/docker/overlay2/fbc734ec11bbd658ef6d629db945b76cfb54be20323bf2b7582d728ac1598ad6/diff:/var/lib/docker/overlay2/c7907d7d8eeead6a586abb717ed50d1c6713e56debf1d2afcdd1041defda7afd/diff:/var/lib/docker/overlay2/b453df545cbbb7056257f367a825241fabc4c6ff8b9a286bd8525e2a8ea53d29/diff:/var/lib/docker/overlay2/266bc1f43d9d568160b0a486d665222154f768b44639e07ba8e63fc3615dd22c/diff:/var/lib/docker/overlay2/88381b8129c2a8fc52fe001b8a14123e8e41f7a598dad393e1d3ce1ce6bdd150/diff:/var/lib/docker/overlay2/a6fa46faafdc3f6945cfc7c262c13c3807e3ddd209d783c211b3f77af8f4090a/diff",
"MergedDir": "/var/lib/docker/overlay2/a06accc90f8ac401321e38662c747105b448e6ffe18d4c73ce9e7c5f67967240/merged",
"UpperDir": "/var/lib/docker/overlay2/a06accc90f8ac401321e38662c747105b448e6ffe18d4c73ce9e7c5f67967240/diff",
"WorkDir": "/var/lib/docker/overlay2/a06accc90f8ac401321e38662c747105b448e6ffe18d4c73ce9e7c5f67967240/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:efafae78d70c98626c521c246827389128e7d7ea442db31bc433934647f0c791",
"sha256:4ba435fb362b6bb215fff313c41bd712844d3e066fdbb5cf98aaecdcbbd9f55d",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:c014c0d88bc125b74eb40f0871af4b450200c7721a5547bebca06a1cbf25e759",
"sha256:c76086a4b246be9155331522ba5aa9b9973195b62f946be33529b44b6be85923",
"sha256:56396a366427406dbbe3d082e65433b684a0eb08c6c1510e7a988b59505e6476",
"sha256:cf88f25962c0c28846a14f6d7e4d12e2b69c3ad88a7bdfa9e81640f079348c82",
"sha256:d997f51f91c93749c0acac741e72317b38ec689f46f064b9caca93794f6a99c9",
"sha256:767631bfc80e87e87845ca46c39e011c98e160f1dd6f996db2c107887b75d0b7",
"sha256:11f0ca232fa9f7a930bbcea8f9f7b1c70b92957e58d2b9ad82f843122455c42e",
"sha256:e3460e16737420f3988c327a9f5ed688657c9b71c1a1352fce14bd1c68dd2b29",
"sha256:36476777fe6a2aa574103abce6a0109619359be5dddf1b73c4671a5943ba41ca",
"sha256:93d04844070662d6bf50028465cd947585be5049dfd0b85254cf3f72f2aac413",
"sha256:ae458e482902be226965d6981b07c5d08394e6cc47cadab848a1916eba2a4d85",
"sha256:eee496a23247cb3df9a16e091df7daf3757a182617aaedc133d19e06853f63c5",
"sha256:1a12cc66933275c3f6ee893fd375236bf1d3e1e58673b6204506f448947bfe4f",
"sha256:1c64996433ce94599fa222316d6924940bb7def36411c9fb356932e87aa9ea1b",
"sha256:1e1d4e0eea31ab57301ba5ec71d7458173a5dcf09da9704a97e631e36f49a690",
"sha256:857bfc72806483b180d9b2054fde3c97854e31cb34aa80514ae584caaca8f6aa"
]
},
"Metadata": {
"LastTagTime": "2026-10-21T16:22:35.841772355+08:00"
}
}