代码之家  ›  专栏  ›  技术社区  ›  BigGbigger

将参数从Docker Compose File传递到pyproject.toml和conf.py文件

  •  0
  • BigGbigger  · 技术社区  · 2 年前

    我有一个项目 pyproject.toml 包含元数据的文件,例如 name, version, description authors 。此外,我有一个 conf.py 包含的文件 project , author version 信息我想将这些值作为参数传递到我的Docker Compose文件中,以自动化设置过程。我怎样才能做到这一点?

    我想使用来自 pyproject.toml conf.py :

    • 项目名称
    • 项目版本
    • 项目描述
    • 作者

    树状结构:

    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 Compose文件?任何关于如何做到这一点的指导或例子都将不胜感激。

    0 回复  |  直到 2 年前
        1
  •  0
  •   XDavidT    2 年前

    您面临的主要问题是,您试图使用 docker-compose 。更好的方法是只使用 docker build 创建它,但如果它是CI的一部分,最好在修改这些之前先执行一步。

    1. 如果你想坚持自己的方式,你可以尝试使用 dotenv 插件: How do I set an environment variable dynamically when using poetry shell?

    2. 更好的方法,在你开始之前 码头建造 使用 toml cli 以设置所需的更改。例如,通过以下方式更改版本:

    toml set --toml-path pyproject.toml tool.poetry.version 0.2.0
    
    推荐文章