镜像构建历史
# 2025-09-04 01:10:47 0.00B 添加元数据标签
LABEL devcontainer.metadata=[ {"id":"ghcr.io/devcontainers/features/common-utils:2"}, {"id":"ghcr.io/devcontainers/features/git:1","customizations":{"vscode":{"settings":{"github.copilot.chat.codeGeneration.instructions":[{"text":"This dev container includes an up-to-date version of Git, built from source as needed, pre-installed and available on the `PATH`."}]}}}}, {"id":"ghcr.io/devcontainers/features/node:1","customizations":{"vscode":{"extensions":["dbaeumer.vscode-eslint"],"settings":{"github.copilot.chat.codeGeneration.instructions":[{"text":"This dev container includes `node`, `npm` and `eslint` pre-installed and available on the `PATH` for Node.js and JavaScript development."}]}}}}, {"id":"ghcr.io/devcontainers/features/python:1","customizations":{"vscode":{"extensions":["ms-python.python","ms-python.vscode-pylance","ms-python.autopep8"],"settings":{"github.copilot.chat.codeGeneration.instructions":[{"text":"This dev container includes `python3` and `pip3` pre-installed and available on the `PATH`, along with the Python language extensions for Python development."}],"python.defaultInterpreterPath":"/usr/local/python/current/bin/python","[python]":{"editor.defaultFormatter":"ms-python.autopep8"}}}}}, {"customizations":{"vscode":{"settings":{"python.defaultInterpreterPath":"/usr/local/bin/python"}}},"remoteUser":"vscode"} ]
# 2025-09-04 01:10:47 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-04 01:10:47 0.00B 定义构建参数
ARG _DEV_CONTAINERS_IMAGE_USER=root
# 2025-09-04 01:10:47 174.44MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/python_3 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/python_3 && cd /tmp/dev-container-features/python_3 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/python_3 # buildkit
# 2025-09-04 01:10:15 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/python/current/bin:/usr/local/py-utils/bin:/usr/local/jupyter:/usr/local/share/nvm/current/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-04 01:10:15 0.00B 设置环境变量 PIPX_BIN_DIR
ENV PIPX_BIN_DIR=/usr/local/py-utils/bin
# 2025-09-04 01:10:15 0.00B 设置环境变量 PIPX_HOME
ENV PIPX_HOME=/usr/local/py-utils
# 2025-09-04 01:10:15 0.00B 设置环境变量 PYTHON_PATH
ENV PYTHON_PATH=/usr/local/python/current
# 2025-09-04 01:10:15 8.46MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/node_2 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/node_2 && cd /tmp/dev-container-features/node_2 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/node_2 # buildkit
# 2025-09-04 01:10:11 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/share/nvm/current/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-04 01:10:11 0.00B 设置环境变量 NVM_SYMLINK_CURRENT
ENV NVM_SYMLINK_CURRENT=true
# 2025-09-04 01:10:11 0.00B 设置环境变量 NVM_DIR
ENV NVM_DIR=/usr/local/share/nvm
# 2025-09-04 01:10:11 146.21MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/git_1 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/git_1 && cd /tmp/dev-container-features/git_1 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/git_1 # buildkit
# 2025-09-04 01:07:36 128.97MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/common-utils_0 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/common-utils_0 && cd /tmp/dev-container-features/common-utils_0 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/common-utils_0 # buildkit
# 2025-09-04 01:07:14 87.00B 执行命令并创建新的镜像层
RUN /bin/sh -c echo "_CONTAINER_USER_HOME=$( (command -v getent >/dev/null 2>&1 && getent passwd 'root' || grep -E '^root|^[^:]*:[^:]*:root:' /etc/passwd || true) | cut -d: -f6)" >> /tmp/dev-container-features/devcontainer-features.builtin.env && echo "_REMOTE_USER_HOME=$( (command -v getent >/dev/null 2>&1 && getent passwd 'vscode' || grep -E '^vscode|^[^:]*:[^:]*:vscode:' /etc/passwd || true) | cut -d: -f6)" >> /tmp/dev-container-features/devcontainer-features.builtin.env # buildkit
# 2025-09-04 01:07:14 41.00B 复制新文件或目录到容器中
COPY /tmp/build-features/ /tmp/dev-container-features # buildkit
# 2025-09-04 01:07:14 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /tmp/dev-container-features # buildkit
# 2025-09-04 01:07:14 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL dev.containers.timestamp=Wed, 03 Sep 2025 17:06:24 GMT
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL dev.containers.source=https://github.com/devcontainers/images
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL dev.containers.release=v0.4.18
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL dev.containers.variant=3.13-trixie
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL dev.containers.id=python
# 2025-09-04 01:07:14 0.00B 添加元数据标签
LABEL version=2.0.2
# 2025-09-04 01:07:14 291.00B 复制新文件或目录到容器中
COPY meta.env /usr/local/etc/vscode-dev-containers/ # buildkit
# 2025-09-04 01:07:14 20.99KB 执行命令并创建新的镜像层
RUN /bin/sh -c /tmp/install-subversion.sh && rm -f /tmp/install-subversion.sh # buildkit
# 2025-09-04 01:07:14 1.40KB 执行命令并创建新的镜像层
RUN /bin/sh -c chmod +x /tmp/install-subversion.sh # buildkit
# 2025-09-04 01:07:14 1.40KB 复制新文件或目录到容器中
COPY ./scripts/install-subversion.sh /tmp/install-subversion.sh # buildkit
# 2025-09-04 01:07:14 20.64MB 执行命令并创建新的镜像层
RUN /bin/sh -c python3 -m pip install --upgrade setuptools==78.1.1 gitpython==3.1.41 # buildkit
# 2025-09-04 01:07:11 22.17MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get purge -y imagemagick imagemagick-6-common # buildkit
# 2025-08-15 05:49:23 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2025-08-15 05:49:23 36.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
# 2025-08-15 05:49:23 70.23MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; bin="$(readlink -ve /usr/local/bin/python3)"; dir="$(dirname "$bin")"; mkdir -p "/usr/share/gdb/auto-load/$dir"; cp -vL Tools/gdb/libpython.py "/usr/share/gdb/auto-load/$bin-gdb.py"; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
# 2025-08-15 05:49:23 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a
# 2025-08-15 05:49:23 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.13.7
# 2025-08-15 05:49:23 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2025-08-15 05:49:23 17.92MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends libbluetooth-dev tk-dev uuid-dev ; apt-get dist-clean # buildkit
# 2025-08-15 05:49:23 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2024-02-01 07:01:46 655.27MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex; apt-get update; apt-get install -y --no-install-recommends autoconf automake bzip2 default-libmysqlclient-dev dpkg-dev file g++ gcc imagemagick libbz2-dev libc6-dev libcurl4-openssl-dev libdb-dev libevent-dev libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev libjpeg-dev libkrb5-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev libncurses5-dev libncursesw5-dev libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev make patch unzip xz-utils zlib1g-dev ; apt-get dist-clean # buildkit
# 2024-02-01 07:01:46 184.87MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends git mercurial openssh-client subversion procps ; apt-get dist-clean # buildkit
# 2024-02-01 07:01:46 60.16MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg netbase sq wget ; apt-get dist-clean # buildkit
# 2024-02-01 07:01:46 119.85MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1754870400'
镜像信息
{
"Id": "sha256:1eafca859515776906966762846378793457f48e786fc3060b32b60f29f87240",
"RepoTags": [
"mcr.microsoft.com/devcontainers/python:2.0.2-3-trixie",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/devcontainers/python:2.0.2-3-trixie"
],
"RepoDigests": [
"mcr.microsoft.com/devcontainers/python@sha256:b4b3a3f0cf67b787061d77bc4b76cdd37f78cc6829050ed3f7dcb7269a99beb5",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/devcontainers/python@sha256:d4da7b6b07c4dbc6e9917ed94c638e9d27fa0a9ad3501bec5770d7085b72de1c"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-09-03T17:10:47.497467278Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "root",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/python/current/bin:/usr/local/py-utils/bin:/usr/local/jupyter:/usr/local/share/nvm/current/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.13.7",
"PYTHON_SHA256=5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a",
"NVM_DIR=/usr/local/share/nvm",
"NVM_SYMLINK_CURRENT=true",
"PYTHON_PATH=/usr/local/python/current",
"PIPX_HOME=/usr/local/py-utils",
"PIPX_BIN_DIR=/usr/local/py-utils/bin"
],
"Cmd": [
"python3"
],
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"dev.containers.id": "python",
"dev.containers.release": "v0.4.18",
"dev.containers.source": "https://github.com/devcontainers/images",
"dev.containers.timestamp": "Wed, 03 Sep 2025 17:06:24 GMT",
"dev.containers.variant": "3.13-trixie",
"devcontainer.metadata": "[ {\"id\":\"ghcr.io/devcontainers/features/common-utils:2\"}, {\"id\":\"ghcr.io/devcontainers/features/git:1\",\"customizations\":{\"vscode\":{\"settings\":{\"github.copilot.chat.codeGeneration.instructions\":[{\"text\":\"This dev container includes an up-to-date version of Git, built from source as needed, pre-installed and available on the `PATH`.\"}]}}}}, {\"id\":\"ghcr.io/devcontainers/features/node:1\",\"customizations\":{\"vscode\":{\"extensions\":[\"dbaeumer.vscode-eslint\"],\"settings\":{\"github.copilot.chat.codeGeneration.instructions\":[{\"text\":\"This dev container includes `node`, `npm` and `eslint` pre-installed and available on the `PATH` for Node.js and JavaScript development.\"}]}}}}, {\"id\":\"ghcr.io/devcontainers/features/python:1\",\"customizations\":{\"vscode\":{\"extensions\":[\"ms-python.python\",\"ms-python.vscode-pylance\",\"ms-python.autopep8\"],\"settings\":{\"github.copilot.chat.codeGeneration.instructions\":[{\"text\":\"This dev container includes `python3` and `pip3` pre-installed and available on the `PATH`, along with the Python language extensions for Python development.\"}],\"python.defaultInterpreterPath\":\"/usr/local/python/current/bin/python\",\"[python]\":{\"editor.defaultFormatter\":\"ms-python.autopep8\"}}}}}, {\"customizations\":{\"vscode\":{\"settings\":{\"python.defaultInterpreterPath\":\"/usr/local/bin/python\"}}},\"remoteUser\":\"vscode\"} ]",
"version": "2.0.2"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1609197002,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/a71847968fb68b9caad6e12a724896ea6f8f269d922b1b676f98535b6e7ac2a3/diff:/var/lib/docker/overlay2/e4a1005a981046a9b26c644c729fb2af8680307fe5ac94e2f18521a2f2cc1bec/diff:/var/lib/docker/overlay2/7b9692d1ec86caad486187e944f02f1ff78b16c8b404da037c6e08a0a7fabe11/diff:/var/lib/docker/overlay2/4621d62f9117e1bebcefc590de586a3967225d1a6ef3d583349c638e5ff8d45e/diff:/var/lib/docker/overlay2/6450a1c8477a38dc87d7a0185fe80bdbdc3fff06c927f2c7585774719154e8d6/diff:/var/lib/docker/overlay2/7244e7b61628c4ff5422c5c87d24270c0a2324b657896c5d137ab537a6fed7a0/diff:/var/lib/docker/overlay2/572c456a6dcf4aec0e0d59f9e9f1d1ad22827a6a87d1cd2156edecd9b92937f4/diff:/var/lib/docker/overlay2/cc5e6519f1f1054aae0b24ea7ad62d71331be81c912609a2de0031f96f94e28b/diff:/var/lib/docker/overlay2/20390d737ed74658891c3636360d4261fc1e4356134f3efeeffc036b4563fd9c/diff:/var/lib/docker/overlay2/5314e894e9202a0fa87211de2db857e60ca421888053ac57850486ca9847431b/diff:/var/lib/docker/overlay2/e6a212b9c71d0b4b545ff64ca501054d92ba0d5148c898d51c3bfb4b5a20a88e/diff:/var/lib/docker/overlay2/be264ecc3b26f0839178ab2cd3f60b8642977d35b33c6eaec66524ca4cdb73de/diff:/var/lib/docker/overlay2/dd571323aacdedb8b4a5f8f67de898ae23863d83bef857d85d32eeec3a984d6d/diff:/var/lib/docker/overlay2/ec52d9dd57372a455194e33bb4da8dfd2dae1b02865c55bfa172351318cd5b4a/diff:/var/lib/docker/overlay2/ad7cad6d928f32e3553b9581b308e7327f12b00f73b389495077774917ef06a1/diff:/var/lib/docker/overlay2/b46ded946b7ff80be7ec18ea630f92d5433e31956e32967eea14649cb4c2c808/diff:/var/lib/docker/overlay2/703fffe7c787b0fdbc139fa8d60191f51e7ef957da16cdaaf940a9b4933bb3fb/diff:/var/lib/docker/overlay2/34de968121d9761287d7f5c7eaff32e6cc86350e259476b7598d72d7999a4200/diff:/var/lib/docker/overlay2/9c8ac3642484fff5adfcdbeb6700e33c565c7de4e2cecdc4833d86f80a7900ef/diff",
"MergedDir": "/var/lib/docker/overlay2/aee00f31de8743ac14fec4674ef47a3bc0c1a0ccf8bd9621593a0a0da8babc86/merged",
"UpperDir": "/var/lib/docker/overlay2/aee00f31de8743ac14fec4674ef47a3bc0c1a0ccf8bd9621593a0a0da8babc86/diff",
"WorkDir": "/var/lib/docker/overlay2/aee00f31de8743ac14fec4674ef47a3bc0c1a0ccf8bd9621593a0a0da8babc86/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:cb9eb84282d037ad85b02cf671ef6ca766c43bc957f88b048d16dd6deb6e68b8",
"sha256:7aabebb55065f28d3cdbb2992e7d23690d6bf2c2ba89db800ffd9c9dda4fa56f",
"sha256:fbb12b2180e78de1b5f766c6f7efc90c64bf45fbe703b053235feacb3d854e4f",
"sha256:b72242dc7fb054dbe447bb0d243cda9cbb6b45ea8077f9b269de5187beb98650",
"sha256:0e08d6e4d0e4d9d32188e6b2ce63049bb5342d61c4c1304a4730a4401bdbfea5",
"sha256:91fd60328ba0c20ef63d4d982c2e62dc030d091d067dc75fabf0cf765445448d",
"sha256:14c6ebdab7ff38ac3ee7c68fe79bb74f0d9ce1cf97c144ab533f6a6a64003eca",
"sha256:8f010697a1c820534f7de0628031a0a6e78d75f43a0628df99a13bdb90cc001c",
"sha256:e0872e36c361f78294b5f6e8682925f2f3890484e81b656eff0a6319c149f426",
"sha256:20c3a3566fca6b7df1ba07c77b1576e14a0edc1158bef728defb12e720b03fc8",
"sha256:36568739d49318a37f4b7fb8895e6518296ce17b8cd98bf2819d796cecb738e2",
"sha256:38f385c7ba56bec38e327300f4ae0d9a8ca42823443e8cc516ffb3d7a8eaa4be",
"sha256:8dc40e230254d10ff6c8211d0ecb3a7ea3ac5beb854167998028ceb56308f879",
"sha256:a0fb9dcb56d76c00788461b039f594fe65120e5ee33ee5ee15e7887d3678b6d7",
"sha256:260ef7e1f3ef39fe5b7e0369d6a754b7fe861f8c9eed85f8450687cf8925d989",
"sha256:1101f5a8d3204517acecadf25bb6168635f1ac1d3ffae66f93bc63e1fe84e070",
"sha256:a246edeb93a5df52a23066a243f56f727157ee8db0c581c217bcd634617fcaf8",
"sha256:f892d3b0117c355d90c87d131a16e455c3fcb78aeb6dc8d381380139d682eff2",
"sha256:9c884ef47e4c7376f7dd14db8d6b393b4f1875b6042d164dfbc9aa263f048c9d",
"sha256:57b6613a91d313823f6f78b5b9e5f1baad6e17fc119298bdc483df736d73b719"
]
},
"Metadata": {
"LastTagTime": "2025-09-22T14:07:34.390817656+08:00"
}
}