镜像构建历史
# 2025-09-03 05:03:39 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["npx" "claude"]
# 2025-09-03 05:03:39 0.00B 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c /home/appuser/.nodenv/bin/nodenv init - bash > /dev/null || true # buildkit
# 2025-09-03 05:03:39 4.47KB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(nodenv init - bash)"' >> ~/.bashrc && echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile && echo 'eval "$(nodenv init - bash)"' >> ~/.profile # buildkit
# 2025-09-03 05:03:39 0.00B 设置环境变量 NODENV_ROOT
ENV NODENV_ROOT=/home/appuser/.nodenv
# 2025-09-03 05:03:39 0.00B 设置环境变量 PATH
ENV PATH=/home/appuser/.nodenv/bin:/home/appuser/.nodenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-09-03 05:03:39 0.00B 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c mkdir -p /home/appuser/.nodenv/versions && chown -R appuser:appuser /home/appuser/.nodenv/versions # buildkit
# 2025-09-03 05:03:39 7.80MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c git clone https://github.com/nodenv/node-build.git "$($HOME/.nodenv/bin/nodenv root)"/plugins/node-build # buildkit
# 2025-09-03 05:03:38 1.54MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c git clone https://github.com/nodenv/nodenv.git ~/.nodenv # buildkit
# 2025-09-03 05:03:38 0.00B 指定运行容器时使用的用户
USER appuser
# 2025-09-03 05:03:38 32.59KB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c useradd -m appuser && chown -R appuser:appuser /app # buildkit
# 2025-09-03 05:03:37 22.66KB 复制新文件或目录到容器中
COPY . . # buildkit
# 2025-09-03 05:03:37 722.00B 复制新文件或目录到容器中
COPY /app/node_modules ./node_modules # buildkit
# 2025-09-03 05:03:37 1.47MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c apt-get update && apt-get install -y jq && rm -rf /var/lib/apt/lists/* # buildkit
# 2025-09-03 05:03:34 138.76MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c apt-get update && apt-get install -y git gh && rm -rf /var/lib/apt/lists/* # buildkit
# 2025-09-03 05:03:27 16.55MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c apt-get update && apt-get install -y bash curl && rm -rf /var/lib/apt/lists/* # buildkit
# 2025-09-03 05:03:21 138.82MB 执行命令并创建新的镜像层
RUN |1 CLAUDE_CODE_VERSION=1.0.100 /bin/sh -c echo "Installing claude-code version: ${CLAUDE_CODE_VERSION}" && npm install -g @anthropic-ai/claude-code@${CLAUDE_CODE_VERSION} # buildkit
# 2025-09-03 05:03:17 0.00B 定义构建参数
ARG CLAUDE_CODE_VERSION=1.0.100
# 2025-09-03 05:03:17 0.00B 设置工作目录为/app
WORKDIR /app
# 2025-09-03 05:03:17 0.00B 设置环境变量 SHELL
ENV SHELL=/bin/bash
# 2025-09-03 05:03:17 0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
# 2024-10-30 04:39:22 0.00B 设置默认要执行的命令
CMD ["node"]
# 2024-10-30 04:39:22 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2024-10-30 04:39:22 388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
# 2024-10-30 04:39:22 7.18MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit
# 2024-10-30 04:39:22 0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
# 2024-10-30 04:39:22 137.80MB 执行命令并创建新的镜像层
RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in C0D6248439F1D5604AAFFB4021D900FFDB233756 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A A363A499291CBBC940DD62E41F10027AF002F8B0 ; do gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version # buildkit
# 2024-10-30 04:39:22 0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=22.11.0
# 2024-10-30 04:39:22 8.90KB 执行命令并创建新的镜像层
RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit
# 2024-10-30 04:39:22 74.82MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1733097600'
镜像信息
{
"Id": "sha256:9ef348227b322f268e4ef35fe35100e88e8e57906c8012520c6c59886980e232",
"RepoTags": [
"gendosu/claude-code-docker:1.0.100",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gendosu/claude-code-docker:1.0.100"
],
"RepoDigests": [
"gendosu/claude-code-docker@sha256:22e7473d393f5cc05ac5112f5b75060c83adc40306946074f7bfaa34628a3ec6",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gendosu/claude-code-docker@sha256:fdb55fd6d77f9de193cf54bf3a3095a393f474b9a21ba00c4f42edd4d6d538a5"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-09-02T21:03:39.847433049Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "appuser",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/home/appuser/.nodenv/bin:/home/appuser/.nodenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=22.11.0",
"YARN_VERSION=1.22.22",
"NODE_ENV=production",
"SHELL=/bin/bash",
"NODENV_ROOT=/home/appuser/.nodenv"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": [
"npx",
"claude"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 524804687,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/1eb378c11f1c629b49ca8e25e27affc78b9cbaf5c86f5511c0dd57d8755f8de6/diff:/var/lib/docker/overlay2/a3940e8ca86d39089e88adc8b49e824f3e7c6c476b736b2ea62da1f26711064e/diff:/var/lib/docker/overlay2/9d9746e2c7d1b982ea2e27f652a5341e3bd29819aa6a644b918c32f3b094eeed/diff:/var/lib/docker/overlay2/34ed91874f41dc6a91038c6e1ca98f710caf0521b243f5cd66b8ab9cf0281e21/diff:/var/lib/docker/overlay2/6830bee689e8f550054502fad6d58d2136ebf3d42322bfc50752154e1e10e1ba/diff:/var/lib/docker/overlay2/6dd5e97a2ecf5c852c7df79b2c3f3e82cbb55075fd9039fcbb3e6482f9bdc1b2/diff:/var/lib/docker/overlay2/a36c85d8469110a2ba644413423753818f7a37885dd4dee4a1c73879817273d4/diff:/var/lib/docker/overlay2/f012ec56970c32fd200bb8dd022bbbdd1da39c23e3cd4d2781e7dab2e3371ad1/diff:/var/lib/docker/overlay2/c258708795f6461a6da24e8812a1d8b03e50954664c275fccc2957bb69b9fd7d/diff:/var/lib/docker/overlay2/4f863046197d879db0a57c1824a951b19176aac9093bd987c98a21f905fb47da/diff:/var/lib/docker/overlay2/0c5334d2ab11f57b93d6b0134c97f6c60e3a2cfe7d299f7efaac189a83f4e8b3/diff:/var/lib/docker/overlay2/58473631da81f0233f9c2179d663748e16b1f88517a1061147480738b40d3964/diff:/var/lib/docker/overlay2/ef3c181c9eeb22048531bd2108157e0929a704e4d1843ee5dee1ff4800f52a55/diff:/var/lib/docker/overlay2/9742c19afe38c9b7e90fdd92cd64531a24df705d21598d1da5c351223a31375b/diff:/var/lib/docker/overlay2/6a3c40cfbfda12b5385f832bb708628f1487116972c69667c50556cdab0f0ea8/diff:/var/lib/docker/overlay2/7957ca8d02c46f1b17b34a6fc27fe9042bba4e9f96e73a89a55594be17f4b8c4/diff:/var/lib/docker/overlay2/404e59c4c9adc52232d40ea19adf6c8d76b2fc9392dc54e49d9840bbd9ffc580/diff",
"MergedDir": "/var/lib/docker/overlay2/195701c2291974889a4aa80e8baf1557b6952eaff0543f5475a9e06f9cd33f03/merged",
"UpperDir": "/var/lib/docker/overlay2/195701c2291974889a4aa80e8baf1557b6952eaff0543f5475a9e06f9cd33f03/diff",
"WorkDir": "/var/lib/docker/overlay2/195701c2291974889a4aa80e8baf1557b6952eaff0543f5475a9e06f9cd33f03/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:c0f1022b22a9b36851b358f44e5475e39d166e71a8073cf53c894a299239b1c5",
"sha256:813735500b64da34abf94928d38ceb5c6234650b3ef1bb7139182a587955c997",
"sha256:375d53fbfd816fe31e46853e7be8fa4b40e8185817b6145a588e0ece23b01a36",
"sha256:08758c38ba9c0963e33b7e065aa1f42da60558fdd0639d0170c55632eeef6d68",
"sha256:fcbdea13583388aeef331d95b3e4eaaf67ba0ec0e5fbac162a32b721a345bd4e",
"sha256:9ddd951f94d1203fdd0d61253484ae4bd33fc8329f9a0c0c74b6ca220b325668",
"sha256:0e7ce49939c3384a9a225494be6b9e0eb7d77a4874883d26677cd1ca9ef83194",
"sha256:d0589393838a439805a16c9749e02405621341a0912b9563f58f03266a17e560",
"sha256:710b774e8dec1f5c8bd3c45886ecfcd3f35da87781ea5695733dc6968c9baf76",
"sha256:a650f57cc83261e1e50d71de46d3acafd3d8bc2a331aa9abad40a465f46746e3",
"sha256:f1bf686d4e5e3808dd2476be370ce1c53c1f450cdaf742909dd589f41d4eab8b",
"sha256:d65561f0858039c63d2cf886551edf985e44d12546ca38d0c57b92e16cb15bbb",
"sha256:f4e2290696354306d1af575fc88595225fc34ebac9cb31f460a9ae934c4a3495",
"sha256:1d452c5f291d7c252ec5b6325cee315a0e6117048abedeb6e799c335f9dc1594",
"sha256:057671128b8ff2a35dbc679be1a563d700ff3349103fd3a18ed5e93ee2f1dfe8",
"sha256:9d48c7a69d4138101badb572751b3d1667e14a4c2e2ea27627fbe3b593eb12b0",
"sha256:66f5c0aff6e35dc6a965e1891f995b9a3887f3c0a8c9573932a08e14e2773616",
"sha256:d95381a64c6f528c9fc31223b7827a94f689f6f84eb7cf46af4cb168eb1d6d89"
]
},
"Metadata": {
"LastTagTime": "2025-09-03T10:01:59.888387375+08:00"
}
}