You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python Poetry从pyproject.toml提取版本并用于docker build命令?

从pyproject.toml提取版本号用于Docker镜像标签的实现方法

这个需求完全可行,给你两种简单的实现方式:

方法一:用Poetry自带命令提取版本号

Poetry本身提供了直接输出版本号的命令,不需要手动解析配置文件,步骤如下:

  • 先把版本号赋值给环境变量:
    REPO_VERSION=$(poetry version --short)
    
  • 接着用这个变量执行Docker构建命令:
    docker build -f dockerfile -t your-image-name:$REPO_VERSION .
    
    把your-image-name换成你的镜像名称即可,最终镜像标签会和pyproject.toml里的版本一致。

方法二:直接解析pyproject.toml文件(不依赖Poetry)

如果你的环境没装Poetry,也可以用Python直接读取配置文件提取版本号:

  • 对于Python 3.11及以上(自带tomllib库):
    REPO_VERSION=$(python3 -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['tool']['poetry']['version'])")
    docker build -f dockerfile -t your-image-name:$REPO_VERSION .
    
  • 对于Python 3.10及以下,需要先安装tomli库(pip install tomli),再执行:
    REPO_VERSION=$(python3 -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['tool']['poetry']['version'])")
    docker build -f dockerfile -t your-image-name:$REPO_VERSION .
    

注意事项

  • 确保执行命令时,当前工作目录是pyproject.toml所在的目录,或者在命令里指定文件的绝对路径。
  • 如果你的pyproject.toml里版本字段的位置不是tool.poetry.version,需要根据实际结构调整命令里的键路径。

内容的提问来源于stack exchange,提问作者ddd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:01:03