ghcr.io/promptfoo/promptfoo:0.121.13 linux/amd64

ghcr.io/promptfoo/promptfoo:0.121.13 - 国内下载镜像源 浏览次数:11

promptfoo镜像是一个用于测试和评估AI提示词的工具,支持对不同提示词、模型及参数进行比较,帮助开发者优化提示词效果,确保输出的一致性与质量。

源镜像 ghcr.io/promptfoo/promptfoo:0.121.13
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/promptfoo/promptfoo:0.121.13
镜像ID sha256:ebdf9653b9e3ecff3035b153e6b9f02a6883bec958a8e336ffccaab024abaa3d
镜像TAG 0.121.13
大小 6.50GB
镜像源 ghcr.io
CMD node dist/src/server/index.js
启动入口 docker-entrypoint.sh
工作目录 /app
OS/平台 linux/amd64
浏览量 11 次
贡献者
镜像创建 2026-05-29T00:16:18.597786706Z
同步时间 2026-06-02 11:38
开放端口
3000/tcp
环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NODE_VERSION=24.16.0 YARN_VERSION=1.22.22 API_PORT=3000 HOST=0.0.0.0 PROMPTFOO_SELF_HOSTED=1
镜像标签
2026-05-29T00:11:36.639Z: org.opencontainers.image.created Test your prompts, agents, and RAGs. Red teaming/pentesting/vulnerability scanning for AI. Compare performance of GPT, Claude, Gemini, DeepSeek, and more. Simple declarative configs with command line and CI/CD integration. Used by OpenAI and Anthropic.: org.opencontainers.image.description MIT: org.opencontainers.image.licenses 4860e990c7e9a2f8f677173fb92cf9867b34d03f: org.opencontainers.image.revision https://github.com/promptfoo/promptfoo: org.opencontainers.image.source promptfoo: org.opencontainers.image.title https://github.com/promptfoo/promptfoo: org.opencontainers.image.url main: org.opencontainers.image.version

Docker拉取命令

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

Containerd拉取命令

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

Shell快速替换命令

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

Ansible快速分发-Docker

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

Ansible快速分发-Containerd

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

镜像构建历史


# 2026-05-29 08:16:18  0.00B 设置默认要执行的命令
CMD ["node" "dist/src/server/index.js"]
                        
# 2026-05-29 08:16:18  0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD-SHELL node -e "const http = require('node:http'); const req = http.get('http://127.0.0.1:3000/health', (res) => process.exit(res.statusCode >= 200 && res.statusCode < 400 ? 0 : 1)); req.on('error', () => process.exit(1)); req.setTimeout(5000, () => { req.destroy(); process.exit(1); });"] Interval:30s Timeout:10s StartPeriod:5s StartInterval:0s Retries:0}
                        
# 2026-05-29 08:16:18  0.00B 声明容器运行时监听的端口
EXPOSE [3000/tcp]
                        
# 2026-05-29 08:16:18  0.00B 指定运行容器时使用的用户
USER promptfoo
                        
# 2026-05-29 08:16:18  0.00B 设置环境变量 PROMPTFOO_SELF_HOSTED
ENV PROMPTFOO_SELF_HOSTED=1
                        
# 2026-05-29 08:16:18  0.00B 设置环境变量 HOST
ENV HOST=0.0.0.0
                        
# 2026-05-29 08:16:18  0.00B 设置环境变量 API_PORT
ENV API_PORT=3000
                        
# 2026-05-29 08:16:18  3.49GB 执行命令并创建新的镜像层
RUN |1 PYTHON_VERSION=3.12 /bin/sh -c npm link promptfoo &&     chown promptfoo:promptfoo /app/node_modules/promptfoo &&     mkdir -p /home/promptfoo/.promptfoo && chown promptfoo:promptfoo /home/promptfoo/.promptfoo # buildkit
                        
# 2026-05-29 08:15:05  74.02MB 复制新文件或目录到容器中
COPY --chown=promptfoo:promptfoo /app/dist ./dist # buildkit
                        
# 2026-05-29 08:15:03  2.71GB 复制新文件或目录到容器中
COPY --chown=promptfoo:promptfoo /app/node_modules ./node_modules # buildkit
                        
# 2026-05-22 06:34:05  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-05-22 06:34:05  64.12MB 执行命令并创建新的镜像层
RUN |1 PYTHON_VERSION=3.12 /bin/sh -c apk add --no-cache python3~=${PYTHON_VERSION} py3-pip py3-setuptools curl &&     ln -sf python3 /usr/bin/python # buildkit
                        
# 2026-05-22 06:34:05  0.00B 定义构建参数
ARG PYTHON_VERSION=3.12
                        
# 2026-05-22 06:34:03  3.23KB 执行命令并创建新的镜像层
RUN /bin/sh -c addgroup -S promptfoo && adduser -S promptfoo -G promptfoo # buildkit
                        
# 2026-05-22 06:34:03  23.85KB 执行命令并创建新的镜像层
RUN /bin/sh -c apk upgrade --no-cache # buildkit
                        
# 2026-05-22 02:13:00  0.00B 设置默认要执行的命令
CMD ["node"]
                        
# 2026-05-22 02:13:00  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2026-05-22 02:13:00  388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
                        
# 2026-05-22 02:13:00  5.36MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar   && export GNUPGHOME="$(mktemp -d)"   && for key in     6A010C5166006599AA17F08146C2130DFD2497F5   ; do     { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||     { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$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   && apk del .build-deps-yarn   && yarn --version   && rm -rf /tmp/* # buildkit
                        
# 2026-05-22 02:12:56  0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
                        
# 2026-05-22 02:12:56  149.91MB 执行命令并创建新的镜像层
RUN /bin/sh -c addgroup -g 1000 node     && adduser -u 1000 -G node -s /bin/sh -D node     && apk add --no-cache         libstdc++     && apk add --no-cache --virtual .build-deps         curl     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)"       && case "${alpineArch##*-}" in         x86_64) ARCH='x64' CHECKSUM="761e8070a0943a6cf28ec83df3412630c3cb3d5cbccba32fbae942756b81552f" OPENSSL_ARCH=linux-x86_64;;         x86) OPENSSL_ARCH=linux-elf;;         aarch64) OPENSSL_ARCH=linux-aarch64;;         arm*) OPENSSL_ARCH=linux-armv4;;         ppc64le) OPENSSL_ARCH=linux-ppc64le;;         s390x) OPENSSL_ARCH=linux-s390x;;         *) ;;       esac   && if [ -n "${CHECKSUM}" ]; then     set -eu;     curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz";     echo "$CHECKSUM  node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c -       && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner       && ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo "Building from source"     && apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         gnupg         libgcc         linux-headers         make         python3         py-setuptools     && export GNUPGHOME="$(mktemp -d)"     && for key in       5BE8A3F6C8A5C01D106C0AD820B1A390B168D356       DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7       CC68F5A3106FF448322E48ED27F5E38D5B0A215F       8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600       890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4       C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C       108F52B48DB57BB0CC439B2997B01419BD92F80A       A363A499291CBBC940DD62E41F10027AF002F8B0     ; do       { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||       { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ;     done     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.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.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xf "node-v$NODE_VERSION.tar.xz"     && cd "node-v$NODE_VERSION"     && ./configure     && make -j$(getconf _NPROCESSORS_ONLN) V=     && make install     && apk del .build-deps-full     && cd ..     && rm -Rf "node-v$NODE_VERSION"     && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt;   fi   && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"   && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \;   && apk del .build-deps   && node --version   && npm --version   && rm -rf /tmp/* # buildkit
                        
# 2026-05-22 02:12:56  0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=24.16.0
                        
# 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:ebdf9653b9e3ecff3035b153e6b9f02a6883bec958a8e336ffccaab024abaa3d",
    "RepoTags": [
        "ghcr.io/promptfoo/promptfoo:0.121.13",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/promptfoo/promptfoo:0.121.13"
    ],
    "RepoDigests": [
        "ghcr.io/promptfoo/promptfoo@sha256:3993e7c105bcbc1c8f763309552728dd2bf30ff5c9c2e14ec69297b42d096f80",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/promptfoo/promptfoo@sha256:e81e3211c04421969306e79cb6e123ec2f222efdc75d0ea03a0cd61246c06149"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-05-29T00:16:18.597786706Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "promptfoo",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "3000/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "NODE_VERSION=24.16.0",
            "YARN_VERSION=1.22.22",
            "API_PORT=3000",
            "HOST=0.0.0.0",
            "PROMPTFOO_SELF_HOSTED=1"
        ],
        "Cmd": [
            "node",
            "dist/src/server/index.js"
        ],
        "Healthcheck": {
            "Test": [
                "CMD-SHELL",
                "node -e \"const http = require('node:http'); const req = http.get('http://127.0.0.1:3000/health', (res) =\u003e process.exit(res.statusCode \u003e= 200 \u0026\u0026 res.statusCode \u003c 400 ? 0 : 1)); req.on('error', () =\u003e process.exit(1)); req.setTimeout(5000, () =\u003e { req.destroy(); process.exit(1); });\""
            ],
            "Interval": 30000000000,
            "Timeout": 10000000000,
            "StartPeriod": 5000000000
        },
        "ArgsEscaped": true,
        "Image": "",
        "Volumes": null,
        "WorkingDir": "/app",
        "Entrypoint": [
            "docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": {
            "org.opencontainers.image.created": "2026-05-29T00:11:36.639Z",
            "org.opencontainers.image.description": "Test your prompts, agents, and RAGs. Red teaming/pentesting/vulnerability scanning for AI. Compare performance of GPT, Claude, Gemini, DeepSeek, and more. Simple declarative configs with command line and CI/CD integration.  Used by OpenAI and Anthropic.",
            "org.opencontainers.image.licenses": "MIT",
            "org.opencontainers.image.revision": "4860e990c7e9a2f8f677173fb92cf9867b34d03f",
            "org.opencontainers.image.source": "https://github.com/promptfoo/promptfoo",
            "org.opencontainers.image.title": "promptfoo",
            "org.opencontainers.image.url": "https://github.com/promptfoo/promptfoo",
            "org.opencontainers.image.version": "main"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 6503051281,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/6f8a229e14c7ba834de2a17ac5fbfaffa59aae5809acb0e99bfbe93a7a7c42c7/diff:/var/lib/docker/overlay2/01e830d264fda650483f4a4b67c66fb760734aba8d41f00bb5172d26d7dc3c6f/diff:/var/lib/docker/overlay2/cc171075ed5d14803b635a103b278f7c95c219b47a1402856a650b28f5233194/diff:/var/lib/docker/overlay2/9312dff7ee95a3f5b204475c6bdb558f8f4b3a184e14073f167c6a4646cb83ee/diff:/var/lib/docker/overlay2/b38915bcaa71121202088da2a8d2f06c1104c6eadc8aedd4db447c94eb24ce24/diff:/var/lib/docker/overlay2/aae35d8161f05152084a4a39b83dd691f1bd38dcac128243102cb234469b65f4/diff:/var/lib/docker/overlay2/65df5c7b2fa5d9cbed0c2606ec8abb79bbd3bf43a66d4cbbea41b860de73b339/diff:/var/lib/docker/overlay2/99cbd7123207326c8ccdeeaf3c4b110adbf488670917212484f68e53854bfe8b/diff:/var/lib/docker/overlay2/50f83c5101946963746e19cc57c3398bb2c07d9be6f576138ef3200cadcf562a/diff:/var/lib/docker/overlay2/9a1ef5a883ef2cbf9a0d960bba5d783f7ecd7d9d3ba8bb8cd5537b33d65a942f/diff",
            "MergedDir": "/var/lib/docker/overlay2/cee01d6561593b1de2caae7d7fb48c034e765a7d4c1dc2844fc462cf3ad275c9/merged",
            "UpperDir": "/var/lib/docker/overlay2/cee01d6561593b1de2caae7d7fb48c034e765a7d4c1dc2844fc462cf3ad275c9/diff",
            "WorkDir": "/var/lib/docker/overlay2/cee01d6561593b1de2caae7d7fb48c034e765a7d4c1dc2844fc462cf3ad275c9/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:29df493baa13de438d6d2ece3a8333032e0b7b9b9d8cce4ee82194da255f61e1",
            "sha256:6bb471c7406ae9a3bf9187b352ef8892e3d5ab002b4e0d5e4fdb8a8130d2bd8d",
            "sha256:accc174778a252474d74133b886f9e146ef927b52ab53b6fce98a8bc6f5e0d47",
            "sha256:88757da5ff3de10a2bf34844fadaa30c44632bcee315222988c08c434803cc55",
            "sha256:be5fc67536e711099f3f3c6f3e64ff91bab1d268623ee7aa79ad6dfa68e8e3e4",
            "sha256:f237ea5160f7a5551cf23e4243b85f3c63cff2134b4c315169de9c34b3d9041e",
            "sha256:82d8e14ec35f56b47bf87537780cb5769a18f2cde042c7536d8038575ed1078a",
            "sha256:2fd26d71fb49d43153661467132567ca78c62ffdb21afe6cedbd39d8f452d8d5",
            "sha256:00200e898ac0fae5491e2873c73014ee5e7f11eadfee57e3d47fe7efdc002095",
            "sha256:dc37ab1444ce2791251f708a6de7b689a84942b5f1ff9ba23ec4065af8526285",
            "sha256:b8ef3ad2b4c51b3ed3e17afe4aad8e84a43fbaa442eb17870bf9409f610daf47"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-06-02T11:32:24.580560845+08:00"
    }
}

更多版本

ghcr.io/promptfoo/promptfoo:0.121.13

linux/amd64 ghcr.io6.50GB2026-06-02 11:38
10