从AWS CLI启动EC2实例时,未执行用户数据脚本

我正在尝试使用AWS CLI从我已经安装了Docker的映像启动EC2实例,然后为该实例提供一个由--user-data传入的脚本,以便从Docker集线器中提取映像并运行那个形象。 我的AWS CLI命令启动实例,但看起来传递给--user-data的脚本从不运行。

CLI命令是:

 aws ec2 run-instances --image-id ami-xxxxx --count 1 --instance-type t2.micro --key-name xxxxx --security-groups xxxxxxx --user-data file:///Users/xxxxxx/startlb.sh 

startlb.sh的内容:

 #!/bin/bash docker pull xxxxxx && docker run -p 9000:9000 -p 9090:9090 -d xxxxxxx go run lbserver.go > /home/ec2-user/startup.log 

我将docker命令的输出redirect到startup.log,以查看是否有标准输出。 当我login到实例时,日志文件没有被创build,导致我相信user-data脚本从不运行。 docker imagesdocker ps都显示实例上没有图像或容器。

该命令成功启动实例,而不需要拖动和运行docker容器(默认情况下,Docker在实例上运行,因此不需要启动它)。 如果我将脚本的内容粘贴到terminal中并执行,就会启动实例,然后拉动容器并运行它,所以脚本没有出现任何问题。

事实certificate它毕竟是在工作。 我没有足够的时间让docker pull下载一切。 几分钟后检查日志文件,映像和容器的存在表明一切都在那里。