我正在从名为puckel / docker-airflow的docker映像运行气流。使用以下docker命令启动容器时,我将本地dags文件夹与容器气流文件夹同步:
docker run -d -p 8080:8080 -v <local_path>:/usr/local/airflow/dags puckel/docker-airflow webserver
在我的DAG上,我有一个PythonOperator
调用名为的函数start_script
,该函数基本上是读取和初始化文件以提取一些信息(例如密码)。功能如下:
def start_script():
config_parser = configparser.RawConfigParser()
config_parser.read("C:/dags/file.ini")
pwd= config_parser.get("LOGS", "pwd")
当我在本地运行此函数时,该函数能够读取文件并输入密码,不幸的是,当我使用dags test命令在docker上运行时,它返回以下错误:
configparser.NoSectionError: No section: 'LOGS'
从容器中调用本地计算机中文件的正确方法是什么?我真的认为,当我在容器上运行该函数时,该函数无法识别config_parser应该读取的路径。
谢谢你的时间!
在容器内,您必须指向已安装卷中的配置文件,因此请更改config_parser.read("C:/dags/file.ini")
为config_parser.read("/usr/local/airflow/dags/file.ini")
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句