镜像构建历史
# 2025-09-04 01:31:39 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/usr/lib/jvm/msopenjdk-current
# 2025-09-04 01:31:39 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`."}]}}}}, {"remoteUser":"vscode"}, {"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/java:1","customizations":{"vscode":{"extensions":["vscjava.vscode-java-pack"],"settings":{"java.import.gradle.java.home":"/usr/local/sdkman/candidates/java/current"}}}}, {"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."}]}}}}, {"customizations":{"vscode":{"settings":{},"extensions":["vscjava.vscode-java-pack"]}},"containerEnv":{"JAVA_HOME":"/usr/lib/jvm/msopenjdk-current"},"remoteUser":"vscode"} ]
# 2025-09-04 01:31:39 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-04 01:31:39 0.00B 定义构建参数
ARG _DEV_CONTAINERS_IMAGE_USER=root
# 2025-09-04 01:31:39 25.43MB 执行命令并创建新的镜像层
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:31:32 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/share/nvm/current/bin:/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:/usr/lib/jvm/msopenjdk-current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-04 01:31:32 0.00B 设置环境变量 NVM_SYMLINK_CURRENT
ENV NVM_SYMLINK_CURRENT=true
# 2025-09-04 01:31:32 0.00B 设置环境变量 NVM_DIR
ENV NVM_DIR=/usr/local/share/nvm
# 2025-09-04 01:31:32 6.35MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/java_1 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/java_1 && cd /tmp/dev-container-features/java_1 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/java_1 # buildkit
# 2025-09-04 01:31:30 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:/usr/lib/jvm/msopenjdk-current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-04 01:31:30 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/usr/local/sdkman/candidates/java/current
# 2025-09-04 01:31:30 0.00B 设置环境变量 SDKMAN_DIR
ENV SDKMAN_DIR=/usr/local/sdkman
# 2025-09-04 01:31:30 133.28MB 执行命令并创建新的镜像层
RUN /bin/sh -c cp -ar /tmp/build-features-src/git_0 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/git_0 && cd /tmp/dev-container-features/git_0 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/git_0 # buildkit
# 2025-09-04 01:28:52 99.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:28:52 41.00B 复制新文件或目录到容器中
COPY /tmp/build-features/ /tmp/dev-container-features # buildkit
# 2025-09-04 01:28:52 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /tmp/dev-container-features # buildkit
# 2025-09-04 01:28:52 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL dev.containers.timestamp=Wed, 03 Sep 2025 17:28:05 GMT
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL dev.containers.source=https://github.com/devcontainers/images
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL dev.containers.release=v0.4.18
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL dev.containers.variant=21-bookworm
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL dev.containers.id=java
# 2025-09-04 01:28:52 0.00B 添加元数据标签
LABEL version=1.1.24
# 2025-09-04 01:28:52 289.00B 复制新文件或目录到容器中
COPY meta.env /usr/local/etc/vscode-dev-containers/ # buildkit
# 2025-09-04 01:28:52 360.62MB 执行命令并创建新的镜像层
RUN |1 TARGET_JAVA_VERSION=21 /bin/sh -c arch="$(dpkg --print-architecture)" && case "$arch" in "amd64") jdkUrl="https://aka.ms/download-jdk/microsoft-jdk-${TARGET_JAVA_VERSION}-linux-x64.tar.gz"; ;; "arm64") jdkUrl="https://aka.ms/download-jdk/microsoft-jdk-${TARGET_JAVA_VERSION}-linux-aarch64.tar.gz"; ;; *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; esac && wget --progress=dot:giga -O msopenjdk.tar.gz "${jdkUrl}" && wget --progress=dot:giga -O sha256sum.txt "${jdkUrl}.sha256sum.txt" && sha256sumText=$(cat sha256sum.txt) && sha256=$(expr substr "${sha256sumText}" 1 64) && echo "${sha256} msopenjdk.tar.gz" | sha256sum --strict --check - && rm sha256sum.txt* && mkdir -p "$JAVA_HOME" && tar --extract --file msopenjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner && rm msopenjdk.tar.gz* && ln -s ${JAVA_HOME} /docker-java-home && ln -s ${JAVA_HOME} /usr/local/openjdk-${TARGET_JAVA_VERSION} # buildkit
# 2025-09-04 01:28:52 0.00B 设置环境变量 LANG
ENV LANG=en_US.UTF-8
# 2025-09-04 01:28:52 0.00B 设置环境变量 PATH
ENV PATH=/usr/lib/jvm/msopenjdk-current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-04 01:28:52 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/usr/lib/jvm/msopenjdk-current
# 2025-09-04 01:28:52 0.00B 定义构建参数
ARG TARGET_JAVA_VERSION
# 2025-09-04 01:28:52 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-01 22:07:43 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`."}]}}}}, {"remoteUser":"vscode"} ]
# 2025-09-01 22:07:43 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-01 22:07:43 0.00B 定义构建参数
ARG _DEV_CONTAINERS_IMAGE_USER=root
# 2025-09-01 22:07:43 425.16MB 执行命令并创建新的镜像层
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-01 22:04:56 251.35MB 执行命令并创建新的镜像层
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-01 22:04:40 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-01 22:04:40 41.00B 复制新文件或目录到容器中
COPY /tmp/build-features/ /tmp/dev-container-features # buildkit
# 2025-09-01 22:04:40 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p /tmp/dev-container-features # buildkit
# 2025-09-01 22:04:40 0.00B 指定运行容器时使用的用户
USER root
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL dev.containers.timestamp=Mon, 01 Sep 2025 14:04:26 GMT
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL dev.containers.source=https://github.com/devcontainers/images
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL dev.containers.release=main
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL dev.containers.variant=bookworm
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL dev.containers.id=base-debian
# 2025-09-01 22:04:40 0.00B 添加元数据标签
LABEL version=dev
# 2025-09-01 22:04:40 291.00B 复制新文件或目录到容器中
COPY meta.env /usr/local/etc/vscode-dev-containers/ # buildkit
# 2023-05-11 07:29:59 48.39MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg netbase sq wget ; rm -rf /var/lib/apt/lists/* # buildkit
# 2023-05-11 07:29:59 116.55MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1754870400'
镜像信息
{
"Id": "sha256:03d24a726d20ec58bb101cd057cd184aa8058c5363772a5e4496d42740b27b6b",
"RepoTags": [
"mcr.microsoft.com/devcontainers/java:1-21-bookworm",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/devcontainers/java:1-21-bookworm"
],
"RepoDigests": [
"mcr.microsoft.com/devcontainers/java@sha256:0af991049cded4b8d5a90d2614289ceec390779ad6a3e4b70957e2b4f3bb1230",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/mcr.microsoft.com/devcontainers/java@sha256:de7d0cc2755946435f204ee51967b167977737e36b4b8b54f46f0902ba194093"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-09-03T17:31:39.226147928Z",
"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/share/nvm/current/bin:/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:/usr/lib/jvm/msopenjdk-current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"JAVA_HOME=/usr/lib/jvm/msopenjdk-current",
"LANG=en_US.UTF-8",
"SDKMAN_DIR=/usr/local/sdkman",
"NVM_DIR=/usr/local/share/nvm",
"NVM_SYMLINK_CURRENT=true"
],
"Cmd": [
"bash"
],
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"dev.containers.id": "java",
"dev.containers.release": "v0.4.18",
"dev.containers.source": "https://github.com/devcontainers/images",
"dev.containers.timestamp": "Wed, 03 Sep 2025 17:28:05 GMT",
"dev.containers.variant": "21-bookworm",
"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`.\"}]}}}}, {\"remoteUser\":\"vscode\"}, {\"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/java:1\",\"customizations\":{\"vscode\":{\"extensions\":[\"vscjava.vscode-java-pack\"],\"settings\":{\"java.import.gradle.java.home\":\"/usr/local/sdkman/candidates/java/current\"}}}}, {\"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.\"}]}}}}, {\"customizations\":{\"vscode\":{\"settings\":{},\"extensions\":[\"vscjava.vscode-java-pack\"]}},\"containerEnv\":{\"JAVA_HOME\":\"/usr/lib/jvm/msopenjdk-current\"},\"remoteUser\":\"vscode\"} ]",
"version": "1.1.24"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1367125008,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5c86f2b8e6d1ffa1713eafd508d55169e6e01208e6c13bb7e026f0974222b16a/diff:/var/lib/docker/overlay2/b82801a489e2f13394af5f6face8096a57b3d09e6c7690c22545253ab5e2d245/diff:/var/lib/docker/overlay2/21927a95390d4c97f8603da887f77184c83ffdd368695c52be33271df980bf11/diff:/var/lib/docker/overlay2/6be6a62f8098aa16712ef360bc08cfadd4378c681e4a2663f02c94ec47d46e22/diff:/var/lib/docker/overlay2/ab486e1820da067e21c33d2cc2adee8ed9e547de2da199bfb300b977ab5e4925/diff:/var/lib/docker/overlay2/24113784cefd707f56d6c4fc6d3419d8d6762ba03ed455d0fe5ae388bc55b950/diff:/var/lib/docker/overlay2/29ec9c7bc48c3ac767b0c91cdcdf5d202002273d6df97a64c7398db479358df0/diff:/var/lib/docker/overlay2/49c291fefb8efbed5068fd69e540cacd70db2386ca7d38994d6d6b66bf6e7494/diff:/var/lib/docker/overlay2/362d425cbd860098918a8d8b24655f81ac85938ed17b84230ba27e4f2b44cf1f/diff:/var/lib/docker/overlay2/5c60a301aea1ec4412c9cbddcde88b50298848e1dc60b9d9803c502381a9b3e9/diff:/var/lib/docker/overlay2/1f255b86c2b58b5411caeae85303c60128abc3e17185a0b626b8f3522e944408/diff:/var/lib/docker/overlay2/102feda75e90283ef42cde596e866ab18b4a2885ffa7c5aa6279c659724a5b82/diff:/var/lib/docker/overlay2/6cbc9d3b68206eabc1c575da8300528b70b00f7f3351bd5551f70bbb74633e82/diff:/var/lib/docker/overlay2/f31e3c70dc6fdd96d9b3a3a857b88b97cbb80bdc4a8b9fbe27fd16fb8be0d4d1/diff:/var/lib/docker/overlay2/f67de4a0ee297b7f84ed5af1b039597931f5d5a592cd6947d0c293cf04c3b10d/diff",
"MergedDir": "/var/lib/docker/overlay2/db55c74151b9c226fb1558b10ebf164335292a641df4c1a10cd911bea8c3ac44/merged",
"UpperDir": "/var/lib/docker/overlay2/db55c74151b9c226fb1558b10ebf164335292a641df4c1a10cd911bea8c3ac44/diff",
"WorkDir": "/var/lib/docker/overlay2/db55c74151b9c226fb1558b10ebf164335292a641df4c1a10cd911bea8c3ac44/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:4668f0f488e5ad4494fadff56ad585c514794b3a293e5e8d006410de9da08155",
"sha256:bf48051734731bf6dd0fdddba94ff37c4b02586537bff5ce654c74e098f992f1",
"sha256:cbcc5b63260b70e08f33deae28c0873a4f53606f89f510fdf29093744cdcf2d7",
"sha256:7e561fddd575cb0bea682ce5d40f9f93394353a31daf8c175aa69b26256796c7",
"sha256:a31ef30f91c269940b111ea365a50f17111e0b889c39489cadd8afcfa7839614",
"sha256:8272e3d54fb05fb4a8a99289c446f666f00f247b53c09c5bb867ddecb73f04ff",
"sha256:4cb08f522865623a5178d439fd8f3e3f274b36c65c5749c9187bf6b445c020a1",
"sha256:6108588dd6e5f567f14fc28f6bed7a85e094f2ed48c22bde420d473d8771409a",
"sha256:604669db09a0b4a61ec2d63de44d1e9038790bc632359a8d6eb680761ddd3a28",
"sha256:398ee2c3385836c853177aff217d024f8b72fa5ff859c0c56bfc50cdbd07d578",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5d132c4188dfbc87045f9a5daa9d2c0151848a0d0a6f5bbf01ce1e7e88527b9c",
"sha256:842583924ef27cb5262763877678e34dfebf0ce07f589d781868f3a750c0f9bc",
"sha256:1a1f070616becde5bae4ca493e5d68ee8fcf30cdf16f7e810c1e1733585d30f2",
"sha256:78cb0fba34ad2393bf973b8470168548f225ff7bd5346c1fd6fe6b85d023f827",
"sha256:b4dbf8bb8661441eb54274b7f49da651338450aa1a971048d3332dc3bc08b0d0"
]
},
"Metadata": {
"LastTagTime": "2026-03-29T12:02:24.789721497+08:00"
}
}