Sign inSign up

longjianghu/zentrola-codex-base

By longjianghu

•Updated 22 days ago

Image
0

400

longjianghu/zentrola-codex-base repository overview

⁠Zentrola Codex Base

longjianghu/zentrola-codex-base 是 Zentrola 使用的轻量级 Codex 运行时基础镜像。

镜像基于 Alpine Linux,包含 OpenAI Codex 原生可执行文件及运行所需的 CA 证书和时区数据。Node.js 和 npm 只在构建阶段用于获取 Codex,最终镜像中不包含 Node.js/npm。

这是用于构建应用镜像的基础镜像,不是完整的 Zentrola 服务。部署 Zentrola 请使用 longjianghu/zentrola⁠。

⁠镜像信息

项目值
Codex 版本0.154.0
基础系统Alpine Linux 3.22
支持架构linux/amd64、linux/arm64
Codex 路径/usr/local/bin/codex
默认用户zentrola
UID / GID10001:10001
工作目录/app
数据卷/app/data
时区Asia/Shanghai
Node.js/npm最终镜像不包含

⁠拉取镜像

docker pull longjianghu/zentrola-codex-base:0.154.0

生产构建建议固定使用明确的版本号,不要依赖浮动标签。

⁠验证 Codex

docker run --rm \
  longjianghu/zentrola-codex-base:0.154.0 \
  codex --version

查看 Codex 帮助:

docker run --rm \
  longjianghu/zentrola-codex-base:0.154.0 \
  codex --help

该镜像没有预设 ENTRYPOINT 或 CMD。直接运行时必须明确指定命令。

⁠环境变量

镜像预设以下环境变量:

HOME=/app/data
CODEX_HOME=/app/data/.codex
CODEX_EXECUTABLE=/usr/local/bin/codex
TZ=Asia/Shanghai

其中:

  • HOME:容器内非 root 用户的主目录
  • CODEX_HOME:Codex 配置和状态目录
  • CODEX_EXECUTABLE:Codex 原生可执行文件路径
  • TZ:容器默认时区

如需保留 Codex 配置或状态,应将持久化卷挂载到 /app/data。

⁠作为应用基础镜像

在应用的 Dockerfile 中继承此镜像:

FROM longjianghu/zentrola-codex-base:0.154.0

WORKDIR /app

COPY --chown=zentrola:zentrola ./dist/ /app/

USER zentrola

ENTRYPOINT ["/app/your-application"]

基础镜像已提供:

/usr/local/bin/codex

应用可以通过环境变量引用该路径:

CODEX_EXECUTABLE=/usr/local/bin/codex

⁠Zentrola 中的使用方式

Zentrola 应用镜像通过 BASE_IMAGE 构建参数继承此镜像:

docker build \
  --build-arg BASE_IMAGE=longjianghu/zentrola-codex-base:0.154.0 \
  --build-arg APP_VERSION=1.0.0 \
  -t longjianghu/zentrola:1.0.0 \
  .

该基础镜像为 Zentrola 提供官方 Codex CLI,用于受支持的 ChatGPT/Codex 个人订阅认证和凭据刷新。

完整 Zentrola 服务请使用:

docker pull longjianghu/zentrola:1.0.0

项目提供的完整 Docker Compose 部署配置:

https://github.com/zentrola/zentrola/blob/main/compose.yaml⁠

⁠挂载持久化目录

需要保留 Codex 状态时,可以创建 Docker 命名卷:

docker volume create codex_data

运行容器时挂载:

docker run --rm \
  -v codex_data:/app/data \
  longjianghu/zentrola-codex-base:0.154.0 \
  codex --version

/app/data 的内容归容器用户 10001:10001 所有。使用宿主机目录挂载时,请确保该用户具有相应的读写权限。

⁠多平台构建

从源代码构建并推送 linux/amd64 和 linux/arm64 镜像:

docker buildx build `
  --platform linux/amd64,linux/arm64 `
  -f docker/codex-base/Dockerfile `
  --build-arg VCS_REF=(git rev-parse HEAD) `
  --build-arg BUILD_DATE=(Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') `
  -t longjianghu/zentrola-codex-base:0.154.0 `
  --push `
  .

仅生成本地 OCI 镜像归档:

docker buildx build `
  --platform linux/amd64,linux/arm64 `
  -f docker/codex-base/Dockerfile `
  --build-arg VCS_REF=(git rev-parse HEAD) `
  --build-arg BUILD_DATE=(Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') `
  -t longjianghu/zentrola-codex-base:0.154.0 `
  --output "type=oci,dest=dist/zentrola-codex-base-0.154.0.tar" `
  .

多平台 manifest 不能通过 --load 同时加载到本地 Docker 镜像仓库。需要推送到镜像仓库时使用 --push,需要离线归档时使用 --output type=oci。

⁠安全建议

  • 应用容器应继续使用默认的非 root 用户 zentrola。
  • 不要将 Codex 登录凭据、Token 或 /app/data/.codex 内容写入镜像。
  • 不要把含有认证状态的数据卷挂载给不受信任的容器。
  • 构建生产应用时固定基础镜像版本;如需更严格的供应链控制,可固定镜像 digest。
  • 升级基础镜像前,应检查对应 Codex 版本的兼容性和发布说明。

⁠源代码与许可证

该镜像重新分发 OpenAI Codex。相关许可证和归属声明位于镜像中的:

/usr/share/licenses/codex/LICENSE
/usr/share/licenses/codex/NOTICE

Tag summary

Content type

Image

Digest

sha256:7fc46e582…

Size

128.5 MB

Last updated

22 days ago

docker pull longjianghu/zentrola-codex-base:0.154.0