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

启动LocalStack时自动创建DynamoDB表报错求助

解决LocalStack初始化时/docker-entrypoint-initaws.d/init.sh: is a directory错误

错误原因

报错明确说明你挂载到容器内的/docker-entrypoint-initaws.d/init.sh是一个目录,而非预期的脚本文件。LocalStack启动时会尝试执行该目录下的可执行脚本,但如果目标路径是目录,就会触发这个错误。

解决步骤

1. 检查本地文件类型

在终端执行以下命令,查看本地init.sh的类型:

ls -la $PWD/.localstack/

如果输出中init.sh的前缀是d(代表目录),执行以下命令删除目录并重新创建脚本文件:

rm -rf $PWD/.localstack/init.sh
touch $PWD/.localstack/init.sh

然后将你的DynamoDB建表脚本内容写入这个新创建的文件。

2. 给脚本添加执行权限

LocalStack需要脚本具备可执行权限才能运行,执行以下命令:

chmod +x $PWD/.localstack/init.sh

3. 验证挂载路径的正确性

  • 确保$PWD指向你的项目根目录,你可以执行echo $PWD确认路径是否正确
  • 若相对路径存在问题,可替换为绝对路径,例如:
    volumes:
      - "/Users/your-username/your-project/.localstack/init.sh:/docker-entrypoint-initaws.d/init.sh"
    

4. 可选:改用目录挂载方式

如果你需要多个初始化脚本,可将本地.localstack目录挂载到容器的/docker-entrypoint-initaws.d/下,而非单个文件:

volumes:
  - "$PWD/.localstack:/docker-entrypoint-initaws.d/"

注意此时.localstack目录下的所有.sh/.py脚本都会按文件名顺序被执行。

验证修复

修改完成后,重新启动容器:

docker-compose up -d

查看容器日志确认是否成功创建数据表:

docker logs localstack

内容的提问来源于stack exchange,提问作者Ajay Narain Mathur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:40:03