You need to enable JavaScript to run this app. docker-compose配置Airflow entrypoint.sh报OCI运行时找不到文件错误
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose配置Airflow entrypoint.sh报OCI运行时找不到文件错误

报错根因

该报错和entrypoint.sh的执行权限无关,核心是entrypoint配置的路径和容器内部实际文件路径不匹配。
对照你的配置逻辑拆解:

  • 你的卷映射规则是:宿主机./airflow/scripts 挂载到容器内/opt/airflow/scripts,因此entrypoint.sh在容器内的真实绝对路径为/opt/airflow/scripts/entrypoint.sh。
  • 当前配置的entrypoint值为./airflow/scripts/entrypoint.sh,这类相对路径会以容器内的默认工作目录(官方apache/airflow 1.10.14镜像的默认工作目录为/opt/airflow)为基准解析,最终拼接出的路径是/opt/airflow/airflow/scripts/entrypoint.sh,该路径在容器内不存在,因此触发stat no such file or directory的启动失败。
修复方案
  • 修改webserver服务的entrypoint配置,二选一即可匹配容器内的实际文件路径:
    # 方案1:使用容器内的绝对路径(*推荐*,可读性强)
    entrypoint: /opt/airflow/scripts/entrypoint.sh
    # 方案2:适配容器默认工作目录的相对路径
    entrypoint: ./scripts/entrypoint.sh
    
  • 配置修改完成后,先执行命令验证挂载有效性:
    docker-compose run --rm webserver ls -l /opt/airflow/scripts/entrypoint.sh
    能正常返回文件信息,即可正常启动服务。
常见附加踩坑点
  • 路径修正后如果仍报执行类错误,检查entrypoint.sh的换行符格式:如果是在Windows环境下编辑的脚本,默认保存的CRLF格式换行会导致shell解析失败,将脚本换行符改为Unix标准LF格式即可解决。
  • 容器内执行的所有命令、路径,都以容器自身的文件系统结构为准,不能直接套用宿主机的目录层级逻辑:卷映射配置中冒号前是宿主机路径,冒号后是容器内路径,两者没有强制的层级对应关系。

内容的提问来源于stack exchange,提问作者Oliver Wills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.09 06:54:04