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

能否通过Poetry的include配置将.venv打包进tar.gz实现标准化部署?

问题:Poetry打包包含.venv的sdist包及标准化部署流程疑问

现状

我在pyproject.toml中配置了如下include规则,但执行poetry build时,.venv文件夹始终无法被纳入生成的tar.gz包中:

include = [
    { path = ".venv", format = "sdist" },
    { path = "docker", format = "sdist" },
    { path = "env", format = "sdist" },
    { path = "logging.conf", format = "sdist" },
    { path = "poetry.lock", format = "sdist" },
    { path = "poetry.toml", format = "sdist" },
]

需求与环境

  • 核心需求:在CI/CD流程中通过Poetry构建包含.venv的tar包,将该包复制到Docker容器后,用poetry run start启动项目
  • 运行环境:CI/CD节点与Kubernetes集群中的Docker容器均采用CentOS 7系统

目前常规做法是CI/CD构建完成后,手动将.venv、项目源码及相关配置文件复制到Docker容器中,但希望优化这个流程。

疑问点

  1. 能否通过将上述include配置写入pyproject.toml,实现poetry build时自动将.venv打包进sdist包?
  2. 借助Poetry提供的build和run脚本功能,是否可以实现一套标准化的打包与项目启动流程?

设想的标准化流程

CI/CD阶段

  • 执行poetry install安装项目依赖
  • 执行poetry build,将项目源码、配置文件及.venv打包为dist/app.tar.gz
  • 在Dockerfile中使用ADD dist/app.tar.gz /app命令将包复制到容器内的/app目录

Docker容器启动阶段

  • 执行poetry run start启动项目

方案预期优势

  • 标准化打包与部署流程,减少手动操作,降低出错概率
  • 所有打包相关配置集中在pyproject.toml,简化CI/CD的配置复杂度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:32:45