在requirements.txt目录运行Docker命令却提示文件不存在的原因咨询
报错核心原因
本质就是容器的目录挂载没生效,容器内的 /var/task 路径根本没有对应到你存放 requirements.txt 的本地文件夹,常见触发场景有两个:
- 跨系统的 shell 语法不兼容:这条命令里的
"$PWD"是 Linux/macOS 的 shell 语法,能自动把当前执行目录的绝对路径填到挂载参数里;但 Windows 的 CMD、老版本 PowerShell 识别不了$PWD这种写法,最终传给 docker 的挂载路径是错的,容器在/var/task下自然找不到文件。 - 实际执行目录和你以为的不一样:很多人以为自己在 requirements.txt 所在目录开的终端,其实中途切了路径——比如 Windows 下切盘符没做对应跳转、终端启动后默认回到用户主目录,导致挂载的本地路径里压根没有 requirements.txt 这个文件。
排查&解决办法
- 先验证当前路径:跑 docker 命令前,先在本地终端执行
pwd(Windows PowerShell 执行Get-Location),确认输出的路径就是存 requirements.txt 的文件夹。 - 对应终端环境替换路径写法:
- PowerShell 环境把挂载参数改成
-v ${PWD}:/var/task - CMD 环境把挂载参数改成
-v %cd%:/var/task
- PowerShell 环境把挂载参数改成
- 嫌变量解析麻烦就直接写死绝对路径:比如你本地 requirements.txt 放在
D:\code\lambda目录,直接写挂载参数-v /d/code/lambda:/var/task,绕开所有变量解析的坑。
内容的提问来源于stack exchange,提问作者James Shapiro
相关产品推荐
相关产品推荐

