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

Docker未复制本地.ssh文件夹,求问题排查方法

Docker中COPY .ssh/到/bin失败的排查与解决方法
  • 确认本地路径与构建上下文
    先在Dockerfile所在目录执行ls -la,确保.ssh文件夹确实存在(隐藏文件夹需要-a参数才能显示)。同时检查docker build命令的执行目录,必须保证.ssh在构建上下文范围内——如果Dockerfile在子目录,而.ssh在上级目录,构建时会找不到这个文件夹。可以执行pwd确认当前工作目录,再用ls -la ./.ssh查看文件夹内的内容。

  • 核对COPY命令的语法逻辑
    你的COPY .ssh/ /bin命令,Docker会把.ssh文件夹内部的所有文件和子文件夹直接复制到/bin目录下,而不是把.ssh文件夹本身复制过去。如果你预期的是把整个.ssh文件夹放到/bin下,需要改成COPY .ssh/ /bin/.ssh/(目标路径末尾加/.ssh/,Docker会自动创建这个目录并复制内容)。
    对比成功的COPY stockfish/ /bin/stockfish,这条命令是把stockfish内的内容复制到/bin/stockfish目录下(目标目录不存在时自动创建),所以你看到的是/bin/stockfish文件夹,而第一条命令的内容直接散落在/bin里,可能你误以为文件夹没复制,实际可以进入容器执行ls /bin查看是否有.ssh里的文件。

  • 排查构建缓存与日志
    执行docker build --no-cache -t test-image .重新构建,避免之前的缓存影响。同时观察构建日志,看COPY步骤是否有类似no source files were found的警告——如果有,说明Docker在构建上下文里找不到.ssh文件夹,需要调整路径或上下文。

  • 权限与系统限制排查
    虽然你改了777权限,但要确保是递归修改:执行chmod -R 777 .ssh,把文件夹和内部所有内容的权限放开。另外,如果你的系统开启了SELinux,可能会阻止Docker读取文件,可以临时执行setenforce 0关闭SELinux,再重新构建测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:50:15