Skip to content

fix(docker): 镜像内置 jev extra,修复 typesafe 后端缺少 typesafe-sdk - #6

Merged
Comui520 merged 1 commit into
Comui520:mainfrom
wthsama:fix/image-jev-extra
Sep 29, 2026
Merged

Comui520 merged 1 commit into
Comui520:mainfrom
wthsama:fix/image-jev-extra

Conversation

@wthsama

@wthsama wthsama commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

问题

设置页把 Jev 后端切到 typesafe 并点“测试连接”,报错:

No module named 'typesafe_sdk'

根因

typesafe-sdk 是 pyproject.toml 里的可选依赖 jev:

[project.optional-dependencies]
jev = ["typesafe-sdk>=0.7"]

但镜像构建只安装 requirements.lock,而该文件由

uv export --locked --no-dev --no-emit-project --format requirements.txt --output-file requirements.lock

生成——没有带 --extra jev,所以 typesafe-sdk 从未进入镜像。

注意这里存在一处脱节:CI 的 uv lock --check 只校验 uv.lock(其中已含 typesafe-sdk,通过),但真正进 Docker 镜像的是 requirements.lock(不含)。因此 uv.lock 同步、CI 全绿,发布镜像却缺依赖。

修复

导出时带上 --extra jev:

uv export --locked --no-dev --extra jev --no-emit-project --format requirements.txt --output-file requirements.lock

这样 typesafe-sdk 及其依赖(httpx2 / httpcore2 / truststore / tenacity)随镜像安装,typesafe 后端开箱可用(纯 Python,体积很小)。typesafe-sdk 仍保持可选依赖的定位,只是官方镜像默认内置。

验证

  • 差异仅新增上述 6 个包,无任何既有包版本变动(git diff 已核对)。
  • requirements.lock 含 typesafe-sdk==0.7.2(含 sdist/wheel 双 hash)。
  • 本地重建镜像后 python -c "import typesafe_sdk" 通过,设置页 typesafe 测试连接成功。

备注

若更希望镜像保持精简、不默认内置该可选依赖,也可以改为在 Dockerfile 中按 build arg 选择性 pip install ".[jev]";但考虑到设置页已直接暴露 typesafe 后端与“测试连接”,这里选择开箱即用。

requirements.lock 由 `uv export --no-dev`(未带 extra)生成,官方 Docker
镜像因此不含可选依赖 typesafe-sdk。设置页切到 typesafe 后端点“测试连接”
会报 `No module named 'typesafe_sdk'`。

改为带 `--extra jev` 导出,typesafe-sdk 及其依赖(httpx2/httpcore2/
truststore/tenacity)随镜像安装;已确认差异仅新增这些包,无既有包版本变化。

验证:
- grep 'typesafe-sdk' requirements.lock 命中
- CI 的 docker 构建任务会实际安装该依赖
@Comui520

Copy link
Copy Markdown
Owner

感谢你及时定位并修复 Docker 镜像缺少 typesafe-sdk 的问题!把 jev extra 纳入镜像依赖导出,既保持本地可选依赖的定位,也让 Docker 中设置页提供的 typesafe 后端真正开箱可用。CI 检查已通过,感谢贡献。

@Comui520
Comui520 merged commit 535724e into Comui520:main Sep 29, 2026
2 checks passed
@wthsama
wthsama deleted the fix/image-jev-extra branch September 29, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants