ℹ️
注意:这是一个 latest 标签镜像

latest 并不代表最新版本,本站同步时间存在延迟,无法保证此镜像与上游最新版本一致
生产环境建议使用明确的版本号(如 v1.2.3),避免因版本不一致导致问题。 了解更多 →

ghcr.io/pmd/pmd:latest linux/amd64

ghcr.io/pmd/pmd:latest - 国内下载镜像源 浏览次数:12

这个镜像是PMD静态代码分析工具的Docker镜像,可用于对多种编程语言(如Java、JavaScript、Python等)的代码进行静态分析,检测代码中的潜在问题、不良实践和错误,帮助开发者提升代码质量。

源镜像 ghcr.io/pmd/pmd:latest
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest
镜像ID sha256:93a2764946adafcba898dc00903d0657730b601d291d06bc9da28f87f4fa3150
镜像TAG latest
大小 445.76MB
镜像源 ghcr.io
CMD
启动入口 pmd
工作目录 /src
OS/平台 linux/amd64
浏览量 12 次
贡献者
镜像创建 2026-05-29T07:32:23.840442994Z
同步时间 2026-06-16 13:57
环境变量
PATH=/opt/pmd/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin JAVA_HOME=/opt/java/openjdk LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 JAVA_VERSION=jdk-21.0.11+10 PMD_HOME=/opt/pmd CLASSPATH=/custom-pmd-libs/*
镜像标签
2026-05-29T07:32:13+00:00: org.opencontainers.image.created BSD-3-Clause: org.opencontainers.image.licenses https://github.com/pmd/docker: org.opencontainers.image.source PMD Docker: org.opencontainers.image.title https://github.com/pmd/docker: org.opencontainers.image.url 7.25.0: org.opencontainers.image.version
镜像安全扫描 查看Trivy扫描报告

系统OS: alpine 3.23.4 扫描引擎: Trivy 扫描时间: 2026-06-16 13:57

低危漏洞:30 中危漏洞:13 高危漏洞:3 严重漏洞:0

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest  ghcr.io/pmd/pmd:latest

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest  ghcr.io/pmd/pmd:latest

Shell快速替换命令

sed -i 's#ghcr.io/pmd/pmd:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest  ghcr.io/pmd/pmd:latest'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest  ghcr.io/pmd/pmd:latest'

镜像构建历史


# 2026-05-29 15:32:23  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["pmd"]
                        
# 2026-05-29 15:32:23  0.00B 执行命令并创建新的镜像层
RUN |1 PMD_VERSION=7.25.0 /bin/sh -c set -eux;     echo "Verifying install ...";     echo "pmd --version"; pmd --version;     echo "Complete." # buildkit
                        
# 2026-05-29 15:32:23  0.00B 设置工作目录为/src
WORKDIR /src
                        
# 2026-05-29 15:32:23  0.00B 设置环境变量 CLASSPATH
ENV CLASSPATH=/custom-pmd-libs/*
                        
# 2026-05-29 15:32:23  0.00B 执行命令并创建新的镜像层
RUN |1 PMD_VERSION=7.25.0 /bin/sh -c mkdir /src     mkdir /custom-pmd-libs # buildkit
                        
# 2026-05-29 15:32:22  80.72MB 执行命令并创建新的镜像层
RUN |1 PMD_VERSION=7.25.0 /bin/sh -c set -eux;     wget -O /pmd-dist-${PMD_VERSION}-bin.zip https://github.com/pmd/pmd/releases/download/pmd_releases%2F${PMD_VERSION}/pmd-dist-${PMD_VERSION}-bin.zip;     wget -O /pmd-dist-${PMD_VERSION}-bin.zip.asc https://github.com/pmd/pmd/releases/download/pmd_releases%2F${PMD_VERSION}/pmd-dist-${PMD_VERSION}-bin.zip.asc || true;     if [ -e /pmd-dist-${PMD_VERSION}-bin.zip.asc ]; then         export GNUPGHOME="$(mktemp -d)";         gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 1E046C19ED2873D8C08AF7B8A0632691B78E3422;         gpg --batch --verify /pmd-dist-${PMD_VERSION}-bin.zip.asc /pmd-dist-${PMD_VERSION}-bin.zip;         rm -rf "${GNUPGHOME}" /pmd-dist-${PMD_VERSION}-bin.zip.asc;     else         echo "WARNING: can't verify binary with gpg";     fi;     unzip -d / /pmd-dist-${PMD_VERSION}-bin.zip;     rm /pmd-dist-${PMD_VERSION}-bin.zip;     mv /pmd-bin-${PMD_VERSION} ${PMD_HOME}; # buildkit
                        
# 2026-05-29 15:32:19  1.80MB 执行命令并创建新的镜像层
RUN |1 PMD_VERSION=7.25.0 /bin/sh -c set -eux;     apk add --no-cache         bash     ;     rm -rf /var/cache/apk/* # buildkit
                        
# 2026-05-29 15:32:19  0.00B 定义构建参数
ARG PMD_VERSION=7.25.0
                        
# 2026-05-29 15:32:19  0.00B 设置环境变量 PATH
ENV PATH=/opt/pmd/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2026-05-29 15:32:19  0.00B 设置环境变量 PMD_HOME
ENV PMD_HOME=/opt/pmd
                        
# 2026-05-08 07:59:39  0.00B 设置默认要执行的命令
CMD ["jshell"]
                        
# 2026-05-08 07:59:39  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/__cacert_entrypoint.sh"]
                        
# 2026-05-08 07:59:39  5.31KB 复制新文件或目录到容器中
COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit
                        
# 2026-05-08 07:59:39  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux;     echo "Verifying install ...";     fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java;     echo "javac --version"; javac --version;     echo "java --version"; java --version;     echo "Complete." # buildkit
                        
# 2026-05-08 07:59:37  306.62MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux;     ARCH="$(apk --print-arch)";     case "${ARCH}" in        aarch64)          ESUM='c8d63598d1dc0a656033515ed258bd6db37506a05407d9f65cd23b95c21027b5';          BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.11_10.tar.gz';          ;;        x86_64)          ESUM='38bfdcef1e4b45de2ec222047ac79c76bea75d4d7406a310e26cfa236763f05f';          BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_alpine-linux_hotspot_21.0.11_10.tar.gz';          ;;        *)          echo "Unsupported arch: ${ARCH}";          exit 1;          ;;     esac;     wget -O /tmp/openjdk.tar.gz ${BINARY_URL};     wget -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig;     export GNUPGHOME="$(mktemp -d)";     gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B;     gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz;     rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig;     echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -;     mkdir -p "$JAVA_HOME";     tar --extract         --file /tmp/openjdk.tar.gz         --directory "$JAVA_HOME"         --strip-components 1         --no-same-owner     ;     rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; # buildkit
                        
# 2026-05-08 07:58:34  0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.11+10
                        
# 2026-05-08 07:58:34  48.15MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux;     apk add --no-cache         fontconfig ttf-dejavu         gnupg         ca-certificates p11-kit-trust         musl-locales musl-locales-lang         binutils         tzdata         coreutils         openssl     ;     rm -rf /var/cache/apk/* # buildkit
                        
# 2026-05-08 07:58:34  0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
                        
# 2026-05-08 07:58:34  0.00B 设置环境变量 PATH
ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2026-05-08 07:58:34  0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/opt/java/openjdk
                        
# 2026-04-16 04:01:40  0.00B 设置默认要执行的命令
CMD ["/bin/sh"]
                        
# 2026-04-16 04:01:40  8.45MB 复制文件或目录到容器中
ADD alpine-minirootfs-3.23.4-x86_64.tar.gz / # buildkit
                        
                    

镜像信息

{
    "Id": "sha256:93a2764946adafcba898dc00903d0657730b601d291d06bc9da28f87f4fa3150",
    "RepoTags": [
        "ghcr.io/pmd/pmd:latest",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd:latest"
    ],
    "RepoDigests": [
        "ghcr.io/pmd/pmd@sha256:08a7c0c7567ca6a4d5e09f67019efea3954954229fd19b5f2a452e21638dac63",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/pmd/pmd@sha256:08a7c0c7567ca6a4d5e09f67019efea3954954229fd19b5f2a452e21638dac63"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-05-29T07:32:23.840442994Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/opt/pmd/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "JAVA_HOME=/opt/java/openjdk",
            "LANG=en_US.UTF-8",
            "LANGUAGE=en_US:en",
            "LC_ALL=en_US.UTF-8",
            "JAVA_VERSION=jdk-21.0.11+10",
            "PMD_HOME=/opt/pmd",
            "CLASSPATH=/custom-pmd-libs/*"
        ],
        "Cmd": null,
        "Image": "",
        "Volumes": null,
        "WorkingDir": "/src",
        "Entrypoint": [
            "pmd"
        ],
        "OnBuild": null,
        "Labels": {
            "org.opencontainers.image.created": "2026-05-29T07:32:13+00:00",
            "org.opencontainers.image.licenses": "BSD-3-Clause",
            "org.opencontainers.image.source": "https://github.com/pmd/docker",
            "org.opencontainers.image.title": "PMD Docker",
            "org.opencontainers.image.url": "https://github.com/pmd/docker",
            "org.opencontainers.image.version": "7.25.0"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 445755038,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/f2c174ddb7dd7bb9e25d079b062c0ac715152ee8c2051c81f41e65d842ed750a/diff:/var/lib/docker/overlay2/139fa7ff890db3aed7f38b0afc2a39f4a64b732e79a82f6a7cd3017e4a10d0c1/diff:/var/lib/docker/overlay2/e19f3606436a5abe96019d28e0894ac7b16e4e8c0ceb5e66acd0411e141faead/diff:/var/lib/docker/overlay2/5c5b610170305397afc18aa194ec022f747aa5c1ee7d45e3d795d51c86bc9852/diff:/var/lib/docker/overlay2/05b2bfd1bc69ef79d6e7830c93387950b1d6f38d4315181487ce380f9c86db11/diff:/var/lib/docker/overlay2/b715160dbc2dc4ceca96ceb5e8b6f1ee43b4fff8ba7f7591f2d4e108beb4b857/diff:/var/lib/docker/overlay2/d6255dcb104c57e261bc4b9948784b1a4d6a2c8128fda15d0ad349163922e829/diff:/var/lib/docker/overlay2/d0a61b34a92571f81fca68e21cb204f7de790fa547e5a69b575742e8fbe58abb/diff:/var/lib/docker/overlay2/9a1ef5a883ef2cbf9a0d960bba5d783f7ecd7d9d3ba8bb8cd5537b33d65a942f/diff",
            "MergedDir": "/var/lib/docker/overlay2/f92e929df3d96a3c39053bc43d05a5c023233788837da36cf3bac7ad298926e9/merged",
            "UpperDir": "/var/lib/docker/overlay2/f92e929df3d96a3c39053bc43d05a5c023233788837da36cf3bac7ad298926e9/diff",
            "WorkDir": "/var/lib/docker/overlay2/f92e929df3d96a3c39053bc43d05a5c023233788837da36cf3bac7ad298926e9/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:29df493baa13de438d6d2ece3a8333032e0b7b9b9d8cce4ee82194da255f61e1",
            "sha256:430a1d12ca756ca1c45d83df1f508cc38d41840f2a02734d92f32c536a5ac7ed",
            "sha256:bb9fac72b7d822515d94ccef801926c8ab9bf3eb7fde1da2e9495ef7ab1aa449",
            "sha256:407da976aa4a1bb3f9808abddee47e3f9f7128e5b04b33512282ed6c281b8a93",
            "sha256:400cea870a04e2f9d19e0e904d945abd0105f4052fdb6983dbd454475a8ea7a6",
            "sha256:eb0b2d709244828a6e67a91f363d5accd60797dfff96df8417e8fc7a17bfddb0",
            "sha256:b1ad1eb219e4a1d7c92514bab3ae6e5917985dedeead95f8b62fe5480061fc5e",
            "sha256:854ec9d6566af845a66cd939945d26143d7c4e7a670e941903feadb098bdab96",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-06-16T13:57:09.948712548+08:00"
    }
}

更多版本

ghcr.io/pmd/pmd:latest

linux/amd64 ghcr.io445.76MB2026-06-16 13:57
11