Python 将参数的变量列表作为文件传递给docker

Python 将参数的变量列表作为文件传递给docker,python,docker,docker-compose,dockerfile,Python,Docker,Docker Compose,Dockerfile,关于这一点,我已经看到了一些答案,但据我所知,没有人做我想做的事情 如果我的代码能够接受如下不同的调用: app.py -hist app.py -hist -yearIni 2018 -yearEnd 2019 -station 12341234 app.py -hist -dateIni 20-2-2018 -dateEnd 20-2-2019 根据接收到的参数,它会进行API调用或其他调用 我现在要做的是将这种行为记录在案。到目前为止,我只找到Docker ARG和CMD作为选项,

关于这一点,我已经看到了一些答案,但据我所知,没有人做我想做的事情

如果我的代码能够接受如下不同的调用:

app.py -hist

app.py -hist -yearIni 2018 -yearEnd 2019 -station 12341234 

app.py -hist -dateIni 20-2-2018 -dateEnd 20-2-2019
根据接收到的参数,它会进行API调用或其他调用

我现在要做的是将这种行为记录在案。到目前为止,我只找到Docker ARG和CMD作为选项,但如果我正确理解它们,它们就不允许传递文件(如yaml)来指定将显示哪些参数。相反,您必须以某种方式在Dockerfile或其他地方硬编码参数的名称和(可能)值

因为现在我已经有了4-5种不同的组合,它们在未来可能会增长,所以我想传递一个file.yaml(或json或任何其他格式),在这里我定义可以使用哪些可能的参数,然后我的python代码将决定这些参数是否有效,并根据这些参数采取行动

可能的yaml“模式”的伪代码:


有没有办法做到这一点?要将动态参数传递给一个python应用程序,该应用程序可以自行处理此行为,但现在在docker内部?

下面是一个如何从cli将参数传递给docker compose的示例

docker-compose build --build-arg app_env=production
docker-compose up

下面是一个如何从cli向docker compose传递参数的示例

docker-compose build --build-arg app_env=production
docker-compose up

如果不想硬编码,可以使用传递参数的标志values@Shardj谢谢你的回答。因为我是Docker的新手,你能给我举个例子吗?这会有很大的帮助!我会把它放在一个回答中,你能再举一个例子说明你试图做的事情是行不通的吗?Dockerfile CMD很容易重写。(如果您的脚本只是一个简单的API客户端,那么如果它没有封装在Docker中,可能会更容易使用。)如果您不想硬编码,可以使用传递参数的标志values@Shardj谢谢你的回答。因为我是Docker的新手,你能给我举个例子吗?这会有很大的帮助!我会把它放在一个回答中,你能再举一个例子说明你试图做的事情是行不通的吗?Dockerfile CMD很容易重写。(如果您的脚本只是一个简单的API客户机,那么如果它没有封装在Docker中,可能会更易于使用。)