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

时间:2019-06-05 08:13:30

标签: python docker docker-compose dockerfile

我已经看到了一些答案,但据我所知,没有人做我想做的事情。 Example

如果我的代码能够接受这样的其他调用:

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化。到目前为止,我只找到了Docker ARG和CMD作为选项,但是如果我正确理解它们的话,它们将不允许传递文件(例如yaml)来指定将出现的参数。取而代之的是,您被迫在Dockerfile或其他地方以某种方式硬编码代码,参数的名称和(可能的)值。

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

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

predictions:
    city: "//str"
hist:
    yearIni: "//str"
    yearEnd: "//str"

    dateIni: "//str"
    dateEnd: "//str"

    station: "//str"

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

1 个答案:

答案 0 :(得分:2)

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

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