logo
ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6
linux/arm64 ghcr.io Homie 贡献 请确认架构匹配

codex-webui是一个基于OpenAI Codex模型的Web界面应用,提供代码生成、编辑与交互功能,方便用户通过网页端使用Codex模型进行代码相关的开发与调试操作。

23
浏览次数
1.99GB
镜像大小
国内镜像
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64
源镜像
ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6
镜像ID
sha256:9e4c46cb529e4194066c1dc95ff53ba2b93e8d3d1f9b8bf6d623022a38cee205
镜像 TAG
arm64-codex-0.120.0-6-linuxarm64
镜像大小
1.99GB
平台架构
linux/arm64
镜像源
ghcr.io
CMD
node /app/dist/main.js
启动入口
/usr/local/bin/entrypoint.sh
工作目录
/app
OS/平台
linux/arm64
镜像创建
2026-05-22T03:20:02.019175272Z
同步时间
2026-08-15 02:37
浏览量
23 次
贡献者
avatar Homie
🔌 开放端口 1
8172/tcp
⚙️ 环境变量 6
KeyValue
PATH=/root/.local/bin:/root/.local/share/mise/shims:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin 0
DEBIAN_FRONTEND=noninteractive 1
HOME=/root 2
MISE_YES=1 3
NODE_ENV=production 4
CODEX_CLI_VERSION=0.120.0 5
🛡️ 镜像安全扫描
debian 13.5 Trivy 2026-08-15 02:37 查看完整报告
865
低危 LOW
1618
中危 MEDIUM
391
高危 HIGH
22
严重 CRITICAL
受影响目标 (5)
ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6 (debian 13.5) debian Node.js node-pkg Python python-pkg root/.local/share/mise/installs/uv/0.11.16/uv-aarch64-unknown-linux-musl/uv rustbinary root/.local/share/mise/installs/uv/0.11.16/uv-aarch64-unknown-linux-musl/uvx rustbinary

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64  ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64  ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6

Shell快速替换命令

sed -i 's#ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64 && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64  ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64 && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64  ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6'

镜像构建历史


# 2026-05-22 11:20:02  0.00B 设置默认要执行的命令
CMD ["node" "/app/dist/main.js"]
                        
# 2026-05-22 11:20:02  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
                        
# 2026-05-22 11:20:02  0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD-SHELL curl -sf -H "Authorization: Bearer ${WEBUI_API_KEY}" http://localhost:8172/api/status || exit 1] Interval:30s Timeout:5s StartPeriod:15s StartInterval:0s Retries:3}
                        
# 2026-05-22 11:20:02  0.00B 声明容器运行时监听的端口
EXPOSE [8172/tcp]
                        
# 2026-05-22 11:20:02  2.45KB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c chmod +x /usr/local/bin/entrypoint.sh # buildkit
                        
# 2026-05-22 11:20:01  2.45KB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c cat > /usr/local/bin/entrypoint.sh <<'ENTRYPOINT_EOF'
#!/usr/bin/env bash
set -euo pipefail

ROOT_SEED="/opt/root-seed.tar.gz"
ROOT_MARKER="/root/.codex-webui-initialized"
VERSION_MARKER="/root/.codex-webui-version"

is_root_empty() {
  find /root -mindepth 1 -maxdepth 1 -print -quit | grep -q . && return 1
  return 0
}

# ── Phase 1: Root seed restore ──────────────────────────────────────
if is_root_empty; then
  echo "[entrypoint] /root is empty, restoring seed data..."
  tar -C /root -xzf "${ROOT_SEED}"
  touch "${ROOT_MARKER}"
  echo "${CODEX_CLI_VERSION:-unknown}" > "${VERSION_MARKER}"
elif [ ! -e "${ROOT_MARKER}" ] && [ ! -d /root/.local/share/mise ]; then
  echo "[entrypoint] /root has data but mise seed is missing; leaving unchanged."
  echo "[entrypoint] Clear the host volume and restart if this is unintended."
else
  echo "[entrypoint] /root already initialized."
fi

# ── Phase 2: Codex version upgrade ─────────────────────────────────
# Compare image-embedded CODEX_CLI_VERSION with installed version.
# If different, upgrade codex and rebuild arg0 symlinks.
EXPECTED_VER="${CODEX_CLI_VERSION:-}"
INSTALLED_VER=""
if [ -f "${VERSION_MARKER}" ]; then
  INSTALLED_VER="$(cat "${VERSION_MARKER}" 2>/dev/null || true)"
fi

if [ -n "${EXPECTED_VER}" ] && [ "${EXPECTED_VER}" != "${INSTALLED_VER}" ]; then
  echo "[entrypoint] Codex version mismatch: installed=${INSTALLED_VER:-none}, expected=${EXPECTED_VER}"
  echo "[entrypoint] Upgrading @openai/codex to ${EXPECTED_VER}..."
  if npm install -g "@openai/codex@${EXPECTED_VER}" 2>&1; then
    echo "${EXPECTED_VER}" > "${VERSION_MARKER}"
    echo "[entrypoint] Codex upgraded to ${EXPECTED_VER}"

    # Rebuild arg0 symlinks (codex multi-call binary may have moved)
    CODEX_BIN="$(find /root/.local/share/mise -name codex -path '*/vendor/*/codex/codex' -type f 2>/dev/null | head -1)"
    if [ -n "${CODEX_BIN}" ]; then
      for tool in apply_patch applypatch codex-execve-wrapper codex-linux-sandbox; do
        ln -sf "${CODEX_BIN}" "/usr/local/bin/${tool}"
      done
      echo "[entrypoint] Rebuilt arg0 symlinks -> ${CODEX_BIN}"
    fi
  else
    echo "[entrypoint] WARNING: Codex upgrade failed, continuing with installed version"
  fi
fi

# Ensure directories exist (in case volume is pre-populated but partial)
mkdir -p /root/.codex /workspaces /app/logs

exec "$@"
ENTRYPOINT_EOF # buildkit
                        
# 2026-05-22 11:20:01  352.11MB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c tar -C /root -czf /opt/root-seed.tar.gz . # buildkit
                        
# 2026-05-22 11:19:35  54.27KB 复制新文件或目录到容器中
COPY drizzle/ ./drizzle/ # buildkit
                        
# 2026-05-22 11:19:35  23.10MB 复制新文件或目录到容器中
COPY /app/public ./public/ # buildkit
                        
# 2026-05-22 11:19:34  1.99MB 复制新文件或目录到容器中
COPY /app/dist ./dist/ # buildkit
                        
# 2026-05-22 11:19:34  28.91MB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c npx --yes node-gyp rebuild --directory=node_modules/node-pty || true   && npx --yes node-gyp rebuild --directory=node_modules/better-sqlite3 || true # buildkit
                        
# 2026-05-22 11:18:17  317.54MB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c pnpm install --frozen-lockfile --prod # buildkit
                        
# 2026-05-22 11:18:07  282.95KB 复制新文件或目录到容器中
COPY package.json pnpm-lock.yaml* ./ # buildkit
                        
# 2026-05-22 11:18:07  0.00B 设置工作目录为/app
WORKDIR /app
                        
# 2026-05-22 11:18:07  644.00B 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c CODEX_BIN="$(find /root/.local/share/mise -name codex -path '*/vendor/*/codex/codex' -type f 2>/dev/null | head -1)"  && if [ -n "$CODEX_BIN" ]; then       for tool in apply_patch applypatch codex-execve-wrapper codex-linux-sandbox; do         ln -sf "$CODEX_BIN" "/usr/local/bin/$tool";       done;       echo "Linked codex arg0 tools -> $CODEX_BIN";     else       echo "WARNING: codex vendor binary not found, arg0 tools not linked";     fi # buildkit
                        
# 2026-05-22 11:18:07  0.00B 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c mkdir -p /root/.codex /workspaces /app/logs # buildkit
                        
# 2026-05-22 11:18:07  27.04MB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c npm install -g pnpm@10.18.3 # buildkit
                        
# 2026-05-22 11:18:05  236.94MB 执行命令并创建新的镜像层
RUN |1 CODEX_CLI_VERSION=0.120.0 /bin/sh -c npm install -g     @openai/codex@${CODEX_CLI_VERSION}     mcp-safe-proxy     mcp-remote # buildkit
                        
# 2026-05-22 11:18:00  0.00B 设置环境变量 CODEX_CLI_VERSION
ENV CODEX_CLI_VERSION=0.120.0
                        
# 2026-05-22 11:18:00  0.00B 定义构建参数
ARG CODEX_CLI_VERSION=0.120.0
                        
# 2026-05-22 11:18:00  9.00B 执行命令并创建新的镜像层
RUN /bin/sh -c node --version  && npm --version  && uv --version  && python --version  && mise --version # buildkit
                        
# 2026-05-22 11:18:00  338.15MB 执行命令并创建新的镜像层
RUN /bin/sh -c mise use -g node@22 uv@latest python@3.14 # buildkit
                        
# 2026-05-22 11:17:38  711.00B 执行命令并创建新的镜像层
RUN /bin/sh -c grep -q 'mise activate bash' /root/.bashrc 2>/dev/null ||     printf '\n# mise\nexport PATH="$HOME/.local/bin:$HOME/.local/share/mise/shims:$PATH"\neval "$(mise activate bash)"\n' >> /root/.bashrc # buildkit
                        
# 2026-05-22 11:17:38  81.56MB 执行命令并创建新的镜像层
RUN /bin/sh -c curl -fsSL https://mise.run | sh # buildkit
                        
# 2026-05-22 11:17:36  0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c command -v 7za >/dev/null # buildkit
                        
# 2026-05-22 11:17:36  477.31MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends     ca-certificates     curl     git     bash     tar     gzip     ripgrep     fd-find     jq     less     file     openssh-client     procps     p7zip-full     bubblewrap     build-essential     pkg-config     python3     make     g++     libssl-dev     zlib1g-dev     libbz2-dev     libreadline-dev     libsqlite3-dev     libffi-dev     liblzma-dev     tk-dev     uuid-dev     xz-utils  && rm -rf /var/lib/apt/lists/* # buildkit
                        
# 2026-05-22 11:17:36  0.00B 设置环境变量 PATH
ENV PATH=/root/.local/bin:/root/.local/share/mise/shims:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
                        
# 2026-05-22 11:17:36  0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
                        
# 2026-05-22 11:17:36  0.00B 设置环境变量 MISE_YES
ENV MISE_YES=1
                        
# 2026-05-22 11:17:36  0.00B 设置环境变量 HOME
ENV HOME=/root
                        
# 2026-05-22 11:17:36  0.00B 设置环境变量 DEBIAN_FRONTEND
ENV DEBIAN_FRONTEND=noninteractive
                        
# 2026-05-18 08:00:00  100.49MB 
# debian.sh --arch 'arm64' out/ 'trixie' '@1779062400'
                        
                    

镜像信息

{
    "Id": "sha256:9e4c46cb529e4194066c1dc95ff53ba2b93e8d3d1f9b8bf6d623022a38cee205",
    "RepoTags": [
        "ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6-linuxarm64"
    ],
    "RepoDigests": [
        "ghcr.io/limlll/codex-webui@sha256:8d41a5c1c084ff07f00125d29b2eb9993a8a9b78b92e2b1f919b394e442bafb9",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/limlll/codex-webui@sha256:77ab00783690d164137e4c83428efdf672d167d9b20a428f8678e710c06b003f"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-05-22T03:20:02.019175272Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "8172/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/root/.local/bin:/root/.local/share/mise/shims:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin",
            "DEBIAN_FRONTEND=noninteractive",
            "HOME=/root",
            "MISE_YES=1",
            "NODE_ENV=production",
            "CODEX_CLI_VERSION=0.120.0"
        ],
        "Cmd": [
            "node",
            "/app/dist/main.js"
        ],
        "Healthcheck": {
            "Test": [
                "CMD-SHELL",
                "curl -sf -H \"Authorization: Bearer ${WEBUI_API_KEY}\" http://localhost:8172/api/status || exit 1"
            ],
            "Interval": 30000000000,
            "Timeout": 5000000000,
            "StartPeriod": 15000000000,
            "Retries": 3
        },
        "ArgsEscaped": true,
        "Image": "",
        "Volumes": null,
        "WorkingDir": "/app",
        "Entrypoint": [
            "/usr/local/bin/entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": null
    },
    "Architecture": "arm64",
    "Os": "linux",
    "Size": 1985475177,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/f0ada707c19740ab2805a30f225b1877b9d3bd44a5594c991044f173217b46bd/diff:/var/lib/docker/overlay2/b4a9ec6f54417963b9fb600ff4e5e6da1246caa7b2dcab5ae583896d834b5644/diff:/var/lib/docker/overlay2/9b3d7f3c06b15e7080c5e2046b48d45a0394f080951de19ac6d0b80ad7068fe5/diff:/var/lib/docker/overlay2/55887b39179d25bcb2e105be954add87f9a7e8f7ea982967acab8a2dd9cb916e/diff:/var/lib/docker/overlay2/bb8cf29eb216c80fa86a584df7f1a34f802d948c6716fef086d0fdd2cb528470/diff:/var/lib/docker/overlay2/00e46cd02e6061227e661e58d77331b1456138fbf8d03ba13657baef4e51e219/diff:/var/lib/docker/overlay2/86c2158bcab80eb40d9a925cf32946483a5fdfc5ee40e9d9a202287c45e0d5ab/diff:/var/lib/docker/overlay2/1484b4d5b9555cb8232f2bcb37f2477fe7324418dc4e04dedec19a21dab01e52/diff:/var/lib/docker/overlay2/a81b27b6ac31e97e278a5d5b95ee4fe1068730984837f578ebd576788f28c263/diff:/var/lib/docker/overlay2/a400e47ef9baa5cca17467641602f27c0c48e295823fdfadf50eec1e92a54fd9/diff:/var/lib/docker/overlay2/f6e7793855adbd49dfaf7658eeef1101cd81cdc75ec8d1b12ec39db756e4c750/diff:/var/lib/docker/overlay2/db0bfe761eac0b9609ac51b99f4ed6232238766dd658d30b1659e2ec35b244c2/diff:/var/lib/docker/overlay2/4c2eddd52675f9d162015094cf1ed31ea1fafaaa94cd825887781ad797c53dc1/diff:/var/lib/docker/overlay2/bb2339e10d14a48e27d7723caae6ca6ff49bbc036ae72e4363c21c89dbe0a090/diff:/var/lib/docker/overlay2/7f2b6e5b8e606041b7ad71d0e05c76be8aeea7a211f6e7dbc1b91bef780bfca7/diff:/var/lib/docker/overlay2/6f332141cf0d0837655b29c9932f1611efb4f5f59d5a84df1d04181e841545dd/diff:/var/lib/docker/overlay2/15ab91a4de62a21c04e2e23c672a396c9b57f7e69a800bd1f61926809abe1bf9/diff:/var/lib/docker/overlay2/d8e300adb35468b41b4d63c59acc54dc47fb70181b6e258c77cacc85a9890919/diff:/var/lib/docker/overlay2/a6b51ad58437b17ac4c6b78d8d5a4f8b60b6d1770a6bae19675eed9fcc4284c2/diff:/var/lib/docker/overlay2/eaedaf669cbcd709a28d58d04359c7225286ca380fd082a71af8865e29a7c7ad/diff",
            "MergedDir": "/var/lib/docker/overlay2/7967d888c9a221263c7409a41a345630cf545aa7fbbaee2265dde90fc198cd39/merged",
            "UpperDir": "/var/lib/docker/overlay2/7967d888c9a221263c7409a41a345630cf545aa7fbbaee2265dde90fc198cd39/diff",
            "WorkDir": "/var/lib/docker/overlay2/7967d888c9a221263c7409a41a345630cf545aa7fbbaee2265dde90fc198cd39/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:0f0c47d76d9eb2be2ad0e5d15813906c7c4d32fa5a098b4a456208142516bab4",
            "sha256:d404ba4d7271c31fa97f727d4b624051c06a423d1810adc504c3ec1b53af2907",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:1015d1d46bba3def4f38406e97354c39dcf746bd5251eeb654fe08182879cb59",
            "sha256:946c34dad459121a6f2f91d1235aff828562c25f2d2d05c9a49d6f3fc9700373",
            "sha256:e629c26163a8b1c9f4f5fda80974f4642764f2a1999ca7a7cddbd5bc24e7ba1e",
            "sha256:b7aede8042836f76af64838c8aaabdd61aeb75b9921b1d22822465c410e6a2c2",
            "sha256:d0a016bd3ab76ac256648ef0df90ccc19bf507dd5eadd8197ae457b817d68f83",
            "sha256:c8d3c518ce2ace8d06bf36daf3dce9e52f470447d41d2a4a3cd357478dd42f23",
            "sha256:699f09134287ae340d95e6f30df3df5bc0e834a50317855abfbe4e840f4ab92a",
            "sha256:3cd2712189d18227d3d3ee612bd120e98f00b39fc82cf2d813c7f70c1b0efe5c",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:02b4b1cf68b1377ff39020f09926878cf66f772722cbf9ecea2e722938f1e683",
            "sha256:3cc3b8acaf8bd1abfc8efdbf557fbe8c48e13bb067c9cb94576b8748428ce406",
            "sha256:f29e822e1de0c19dd2a0dd6a271dfe837c9153fba07c2d7071cbf62ed42ddb66",
            "sha256:90410a1e372b36f2af616181317dce0725af45b3fdac5f677b3a5cde9e128c5e",
            "sha256:f4277c73c048dd9c55543cfa4a389c00c44245b9054a3b475d1f97201e6d2b86",
            "sha256:852c15e5d7021594439d412b207c0a489b1fa60be69b901afbd4358effb587fb",
            "sha256:41b2c9d6a3f645c3ae6716c30daf416f4425e861460e6ca10b62c9d00296e5df",
            "sha256:c77b4c6ad80f7cd637e2a140e5e18695bbd031710b688874586857bdb2e171bb",
            "sha256:92c264151b84cc9488c3c6d6d335d57f4c13ccc3d496e6f251040a0f08ecd778"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-08-15T02:35:48.818457795+08:00"
    }
}

更多版本

ghcr.io/limlll/codex-webui:arm64-codex-0.120.0-6

linux/arm64 ghcr.io1.99GB2026-08-15 02:37
22
检测到您正在使用广告拦截插件,本站为公益站点,依赖广告维持运转 🙏 查看如何关闭 ×