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

Docker Compose无法使用.secret扩展名的文件作为秘钥?

问题分析与解决建议

Docker官方文档并未对secret文件的扩展名做强制约定,你遇到的现象大概率不是通用Bug,而是特定环境组合下的兼容性问题。结合你的WSL+Docker Desktop环境,具体分析和解决办法如下:

可能的原因

  • WSL文件系统与Docker Desktop共享机制的隐性冲突:部分扩展名可能被WSL或Docker的文件监控/同步逻辑特殊处理,导致.secret后缀的文件未被正确识别为普通文件。
  • Docker Compose特定版本的解析异常:你使用的Compose v2.29.7-desktop.1可能存在对.secret后缀的误判,比如将其识别为目录相关标识而非普通文件。

解决办法

  1. 显式指定secret文件路径
    在compose.yml中不要依赖secret名称与文件名的默认匹配,而是显式声明file字段:

    secrets:
      token:
        file: ./azure-devops-token.secret
    

    这种显式配置可绕过可能的自动匹配逻辑错误。

  2. 调整文件存放路径
    创建子目录(如./secrets)存放.secret文件,再在compose.yml中指定路径:

    secrets:
      token:
        file: ./secrets/azure-devops-token.secret
    

    避免根目录下的扩展名触发特殊处理逻辑。

  3. 手动创建secret验证
    在WSL终端直接用Docker命令创建secret,验证文件本身是否可被识别:

    docker secret create token ./azure-devops-token.secret
    

    若命令成功,说明问题出在Docker Compose的解析逻辑;若失败,则大概率是WSL文件系统或Docker集成设置的问题。

  4. 检查Docker Desktop集成设置
    打开Docker Desktop设置,进入Resources > WSL Integration,确保对应Ubuntu发行版已启用集成,且无文件过滤规则限制。

后续建议

若以上方法无效,可在Docker官方GitHub仓库提交Issue,附上完整环境信息、compose.yml内容及错误日志,帮助官方排查是否为特定版本的隐性Bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:47:07