繁体   English   中英

从 docker 容器读取本地机器上的文件

[英]Reading files on local machine from docker container

我正在从名为 puckel/docker-airflow 的 docker 映像运行 airflow。 当我使用以下 docker 命令启动容器时,我将本地 dags 文件夹与容器 airflow 文件夹同步:

docker run -d -p 8080:8080 -v <local_path>:/usr/local/airflow/dags puckel/docker-airflow webserver

在我的 DAG 上,我有一个PythonOperator调用名为start_script的 function ,这个 function 基本上读取和初始化文件以提取一些信息(例如密码)。 function如下:

def start_script():
    config_parser = configparser.RawConfigParser()
    config_parser.read("C:/dags/file.ini")
    pwd= config_parser.get("LOGS", "pwd")

当我在本地运行这个 function 时,function 能够读取文件并带上密码,不幸的是,当我在 docker 上运行时,它会返回错误:d

configparser.NoSectionError: No section: 'LOGS'

从容器调用本地计算机中文件的正确方法是什么? 我真的认为,当我在容器上运行 function 时,function 无法识别 config_parser 应该读取的路径。

谢谢你的时间!

在容器中,您必须指向已安装卷中的配置文件,因此将config_parser.read("C:/dags/file.ini")更改为config_parser.read("/usr/local/airflow/dags/file.ini")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM