在AWS Dockerrun.aws.json中配置Docker Run命令选项遇错如何解决?
解决Elastic Beanstalk Dockerrun.aws.json中Splash命令参数的配置问题
我之前也踩过这个坑!问题核心在于命令参数的拆分逻辑差异——Docker和Elastic Beanstalk处理command数组的方式,和docker-compose里的字符串形式命令完全不一样。
错误原因
你原来的写法把--max-timeout 300当成了数组里的单个元素,这会导致Splash进程收到的是一整个字符串参数"--max-timeout 300",而不是拆分后的--max-timeout和300两个独立参数。Splash无法识别这种格式,自然会触发错误。
反观docker-compose里的字符串形式command: --max-timeout 300,Docker会通过shell执行这个命令,shell会自动把字符串拆分成两个独立参数,所以能正常运行。
正确配置方式
你需要把每个命令参数单独拆成数组的一个元素,修改后的配置如下:
{ "name": "splash", "image": "scrapinghub/splash", // 其他配置项... "command": [ "--max-timeout", "300" ] }, // 其他服务配置...
这样Elastic Beanstalk会把两个元素分别作为参数传递给Splash进程,就能正确应用300秒的超时限制了。
内容的提问来源于stack exchange,提问作者Marcus Lind
相关产品推荐
相关产品推荐

