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

Docker环境下无法运行AWS SAM CLI的问题求助

解决AWS SAM CLI在Docker中运行时"Unable to import module 'index'"的问题

我之前遇到过一模一样的问题!核心根源在于当你在Docker容器里运行SAM CLI时,它会启动另一个Lambda运行时容器,这时候路径映射出现了错位:SAM所在的容器看到的代码路径是/usr/src/app,但Lambda运行时容器需要访问的是你宿主机上的实际代码目录,而不是容器内的虚拟路径,最终导致找不到index.js文件。

具体解决方案

修改你的docker run命令,添加--docker-volume-basedir参数,指定宿主机上当前代码目录的绝对路径:

docker run \
 -v $(pwd):/usr/src/app \
 -v /var/run/docker.sock:/var/run/docker.sock \
 hello sam local invoke --docker-volume-basedir $(pwd) -t template.yml -e event.json HelloWorld

为什么这个方案有效?

SAM CLI在启动Lambda运行时容器时,会根据--docker-volume-basedir的值来挂载宿主机的真实目录到运行时容器中,而不是沿用SAM所在容器内的虚拟路径。这样运行时容器就能精准找到你的index.js文件了。

为什么之前的尝试没解决问题?

你调整权限、SELinux、运行模式这些操作,都是针对SAM本身所在的容器,但问题出在SAM启动的**子容器(Lambda运行时容器)**的路径映射上,所以这些操作无法触达核心问题点。

验证效果

运行修改后的命令,应该就能得到和本地测试一致的输出:

{"body":"Hello, World!"}

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:50:42