You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Boto3报The source profile "default" must have credentials错误怎么办

问题原因及解决方案

你遇到的问题基本是由配置错误、权限不匹配、挂载遗漏这几个常见原因导致的,按优先级排查即可:

1. Docker Compose配置存在语法错误+挂载遗漏

你给出的scheduler服务配置中存在两层重复的volumes字段,属于语法错误,会导致你写的挂载配置不生效,而且你仅给webserver服务添加了aws目录挂载,没有给实际运行任务的scheduler服务添加挂载:

# 错误的配置
scheduler:
  ...
  volumes:
    volumes: # 多余的嵌套字段,会导致配置失效
    - ./database_utils:/database_utils

修正方法:

给两个服务都正确配置挂载:

services:
  webserver:
    ...
    volumes:
      - ./database_utils:/database_utils
      - ./aws:/home/airflow/.aws # 新增aws目录挂载
  scheduler:
    ...
    volumes: # 删掉多余的内层volumes字段
      - ./database_utils:/database_utils
      - ./aws:/home/airflow/.aws # 新增aws目录挂载

2. 宿主机凭证文件权限不匹配

官方Airflow 2.x镜像默认运行进程的用户是UID为50000的airflow用户,你进入容器验证时默认使用root用户,可以正常读取凭证文件,但实际运行Airflow服务的airflow用户没有读取权限。

修正方法:

先修改宿主机上凭证文件的权限,确保其他用户可读:

chmod 755 ./aws
chmod 644 ./aws/credentials ./aws/config

再指定airflow用户进入容器验证,确认凭证正常:

docker exec -u airflow scheduler aws configure list

3. 环境变量/缓存残留问题

如果你使用环境变量传递凭证,可在DAG中打印环境变量确认是否被Airflow进程正常读取,同时要注意如果Airflow后台配置过AWS类型的连接,连接配置优先级会高于环境变量和本地凭证文件。
修改配置后建议彻底清理旧容器再重启,避免缓存影响:

docker-compose down -v
docker-compose up --build -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:18:02