![](/img/trans.png)
[英]How to pull private docker image from GitLab container registry using DockerOperator in Airflow 2.0?
[英]How to pass an argument to a docker container using airflow's DockerOperator
我有一个运行 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)时,我已成功通过 arguments 并在 main.py 中检索并使用它们:
docker run -it param-test "cats"
我现在希望通过 Apache Airflow 执行与上述“docker run”命令等效的操作。
我有以下代码在 airflow 中成功创建 DockerOperator,但我不清楚如何在此代码配置中传递参数,就像我在上面的 docker 运行命令中所做的那样:
DockerOperator(dag=dag,
task_id='my_task_name',
image='my_docker_container_ecr_url'
)
我如何以与运行等效的方式将参数“cats”传递给 DockerOperator:
docker run -it param-test "cats"
以便我的 python 脚本猫使用猫参数?
编辑: main.py 中的 python 代码使用从 docker 传入的 cat 参数:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('city')
args = parser.parse_args()
print(args.cat_var)
下面应该工作
DockerOperator(dag=dag,
task_id='my_task_name',
image='my_docker_container_ecr_url',
command='cats'
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.