Python 如何使用气流将参数传递给docker容器';装卸索具

Python 如何使用气流将参数传递给docker容器';装卸索具,python,docker,airflow,Python,Docker,Airflow,我有一个运行python脚本的docker映像 Dockerfile看起来像: FROM python:3.6 ADD . / RUN pip install -r requirements.txt ENTRYPOINT ["python3.6", "./main.py"] 据我所知,使用ENTRYPOINT而不是CMD来运行python脚本允许将参数传递到main.py,这些参数可以在main.py中使用argparse进行解析 使用以下命令运行d

我有一个运行python脚本的docker映像

Dockerfile看起来像:

FROM python:3.6
ADD . /


RUN pip install -r requirements.txt
ENTRYPOINT ["python3.6", "./main.py"]
据我所知,使用ENTRYPOINT而不是CMD来运行python脚本允许将参数传递到main.py,这些参数可以在main.py中使用argparse进行解析

使用以下命令运行docker容器(名为param test)时,我已成功地传入参数并在main.py中检索和使用它们:

docker run -it param-test "cats"
我现在希望通过ApacheAirflow执行与上述“DockerRun”命令相同的操作

我有以下代码成功地在airflow中创建了DockerRoperator,但我不清楚如何像在上面的docker run命令中一样在该代码配置中传递参数:

DockerOperator(dag=dag,
            task_id='my_task_name',
            image='my_docker_container_ecr_url'
)
如何以与运行相同的方式将参数“cats”传递给DockerRoperator:

docker run -it param-test "cats"
让我的python脚本cat使用cats参数

编辑: main.py中使用docker传入的cats参数的python代码:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('city')
args = parser.parse_args()
print(args.cat_var)
下面应该有用

DockerOperator(dag=dag,
task\u id='my\u task\u name',
image='my\u docker\u container\u ecr\u url',
指挥猫
)

如果你想在Python中使用参数,你必须从sys.argv获取它们。你能解释一下你的意思吗?使用上面的docker run命令,我可以使用python脚本中的参数argparse@KlausD. 我添加了main.py中的代码,展示了如何成功地使用argparse来使用输入变量。