EC2用户数据运行脚本但不启动应用程序

时间:2016-11-28 16:03:14

标签: docker amazon-ec2

我有一个自定义AMI,它有我的app目录和docker镜像。我正在使用启动配置设置Auto Scale Group以创建新实例。我有一个用户数据脚本来启动应用程序。这是代码:

#!/bin/bash

docker-compose -f /home/ec2-user/app/docker-compose.yaml up -d app

脚本运行,但应用程序无法运行。我可以手动SSH并运行应用程序。查看cloud-init-output.log文件,我得到以下内容:

/var/lib/cloud/instance/scripts/part-001: line 4: docker-compose: command not found

在我创建自定义AMI之前安装SSH时,我可以使用Docker-compose。

我缺少什么?

2 个答案:

答案 0 :(得分:0)

关于您的最佳实践问题无关紧要。无论哪种方式都足够了。

然而,哈鲁是正确的。

引导带在不同的安全上下文/ shell环境下运行,因此您需要满足这一需求。

您也可以将整个路径放到二进制文件中,例如:

/usr/local/bin/docker-compose -f /home/ec2-user/app/docker-compose.yaml up -d app 

看看情况如何。

答案 1 :(得分:0)

docker-compose可能已经用于您用于SSH实例的用户(例如ec2-user,ubuntu或admin),但root可能无法使用,root用户数据也是如此当亚马逊转动新实例时。

因此,您可能希望在根$ PATH的一个文件夹中添加docker-compose的软链接,例如/usr/bin