我有一个包含pyproject.toml
文件的项目,其中包含name, version, description
和authors
等元数据。此外,我还有一个conf.py
文件,其中包含project
、author
和version
信息。我想将这些值作为参数传递给我的Docker Composose文件,以自动化安装过程。我如何才能做到这一点?
我想使用pyproject.toml
和conf.py
的元数据动态设置Docker Composose文件中以下字段的值:
- 项目名称
- 项目版本
- 项目说明
- 作者
树结构:
project/
├── docker-compose.yml
├── pyproject.toml
└── docs/
└── conf.py
docker-compose.yml
的内容:
version: '3.8'
services:
myapp:
build:
context: .
args:
- PROJECT_NAME=${PROJECT_NAME}
- PROJECT_VERSION=${PROJECT_VERSION}
- PROJECT_DESCRIPTION=${PROJECT_DESCRIPTION}
- AUTHORS=${AUTHORS}
pyproject.toml
的内容:
[project]
name = "My Project"
version = "1.0.0"
description = "A sample project"
authors = ["John Doe", "Jane Smith"]
docs/conf.py
的内容:
project = 'My Project'
author = 'John Doe, Jane Smith'
version = '1.0.0'
有没有一种方法可以从相应的文件中提取这些值,并在设置过程中将它们作为参数传递给Docker Composose文件?任何关于如何实现这一点的指导或例子将不胜感激。
1条答案
按热度按时间bvn4nwqk1#
您遇到的主要问题是您试图使用
docker-compose
构建Python包。一个更好的方法是只使用docker build
来创建它,但是如果它是CI的一部分,最好在修改这些之前做一个步骤。1.如果你想坚持自己的方式,你可以尝试使用
dotenv
插件:How do I set an environment variable dynamically when using poetry shell?1.更好的方法是,在启动
docker build
之前,使用toml cli来设置所需的更改。例如,通过以下方式更改版本: