Airflow(Docker部署)中SQLite数据库无法打开的问题求解
解决Docker部署Airflow中SQLite无法打开数据库文件的问题
检查容器内文件路径权限
Airflow运行在Docker容器中,本地目录映射到容器后常出现权限不匹配问题:- 进入报错的Airflow容器(Worker或Scheduler):
docker exec -it <容器ID> bash - 查看数据库所在目录权限:
ls -l /容器内数据库目录路径/ - 若Airflow用户(默认UID 50000)无读写权限,调整本地目录权限:
chown -R 50000:50000 /本地数据库目录路径/ - 或在
docker-compose.yml中指定当前用户UID/GID,避免权限冲突:services: airflow-worker: user: "${UID}:${GID}" # 其他配置项
- 进入报错的Airflow容器(Worker或Scheduler):
确认SQLite连接URI格式
Airflow中SQLite绝对路径的URI需用sqlite:////前缀(四个斜杠),比如sqlite:////opt/airflow/data/podcasts.db。执行airflow connections get podcasts检查Conn URI是否符合格式,避免使用相对路径(容器内工作目录可能与预期不符)。验证Docker卷挂载配置
确保本地数据库目录已正确挂载到容器内对应路径,查看docker-compose.yml的volumes配置:volumes: - ./本地数据库目录:/opt/airflow/data进入容器执行
ls /opt/airflow/data/,确认目录存在且能访问(新建库需确保容器有权限创建文件)。同步Airflow组件配置
若Worker节点报错,需保证Worker容器的挂载配置与Scheduler、Webserver完全一致,避免Worker找不到挂载文件。修改配置后重启相关容器:docker-compose restart airflow-scheduler airflow-worker。
内容的提问来源于stack exchange,提问作者Tallion 22
相关产品推荐
相关产品推荐

