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

Localstack入口脚本在Linux/Mac正常运行,Windows下报错如何解决?

解决Windows Docker环境下Localstack初始化脚本执行异常问题

核心原因

Windows默认保存的Shell脚本是CRLF换行符,加上如果没指定脚本解释器,Localstack容器可能会错误解析脚本内容——把换行符当成命令的一部分,甚至用错误的执行器(比如CMD)来跑Shell脚本,导致桶名参数被异常解析,触发正则校验失败。

解决方案

1. 给脚本添加Shebang行

在my_script.sh的最开头加上指定解释器的行,强制容器用Bash执行脚本:

#!/bin/bash
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket

2. 转换脚本换行符为LF格式

Windows默认的CRLF换行符在Linux容器里会被当成命令的一部分(比如桶名末尾多了\r字符),必须转成Linux标准的LF:

  • 用VS Code的话,点击右下角的CRLF,切换为LF后保存文件
  • 用Git的话,执行git config --global core.autocrlf false,然后重新保存或拉取脚本文件
  • 用命令行工具的话,安装dos2unix后执行dos2unix my_script.sh转换格式

3. 在docker-compose.yml里显式指定执行方式

如果前两步还是不行,直接在Localstack服务配置里强制用Bash执行脚本:

services:
  localstack:
    image: localstack/localstack
    volumes:
      - ./my_script.sh:/docker-entrypoint-initaws.d/my_script.sh
    # 先执行脚本,再启动Localstack默认服务
    entrypoint: ["sh", "-c", "bash /docker-entrypoint-initaws.d/my_script.sh && /usr/local/bin/docker-entrypoint.sh"]
    # 保留你的其他配置(端口、环境变量等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:50:32