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

创建AWS Lambda R脚本部署包时遇到执行错误

解决AWS Lambda部署R脚本时的Docker容器启动错误

问题场景

尝试将R脚本handler.R部署到AWS Lambda,已创建bootstrap脚本和Dockerfile,构建镜像后验证文件位置及权限均正常,但执行创建部署包的命令时出现以下错误:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./bootstrap": stat ./bootstrap: no such file or directory: unknown.

错误原因

执行复制命令时使用了-v "${PWD}/dist:/var/task"参数,将本地dist目录挂载到容器的/var/task路径,这会覆盖容器内原有的/var/task目录——原本存在的bootstrap和handler.R会被本地空的dist目录替换,导致容器启动时找不到指定的bootstrap入口文件。

解决方案

方案1:挂载到容器内非/var/task的目录

修改挂载路径,将本地dist挂载到容器的其他目录(比如/local-dist),再从容器原/var/task复制文件到该挂载目录:

mkdir dist
docker run --rm -v "${PWD}/dist:/local-dist" my-r-image sh -c "cp /var/task/bootstrap /var/task/handler.R /local-dist/"

方案2:临时覆盖镜像的ENTRYPOINT

直接指定容器启动时执行sh而非默认的bootstrap,避免触发找不到文件的错误:

mkdir dist
docker run --rm -v "${PWD}/dist:/var/task/dist" --entrypoint sh my-r-image -c "cp /var/task/bootstrap /var/task/handler.R /var/task/dist/"

方案3:直接本地复制(最简便)

如果bootstrap和handler.R文件就在本地工作目录,无需通过容器,直接复制到dist目录即可:

mkdir dist
cp bootstrap handler.R dist/

额外提示

打包Lambda部署包时,需确保bootstrap文件的可执行权限被保留(可以用zip -r lambda-package.zip dist/*命令打包,避免权限丢失)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:36:13