我有一个自定义AMI,它具有我的应用程序目录和泊坞窗图像。我正在使用启动配置设置Auto Scale Group以创建一个新实例。我有一个用户数据脚本来启动应用程序。这是代码:EC2用户数据运行脚本,但不启动应用程序
#!/bin/bash
docker-compose -f /home/ec2-user/app/docker-compose.yaml up -d app
该脚本运行,但该应用程序无法运行。我可以通过SSH手动运行应用程序。看着云的init-output.log文件,我得到以下几点:
/var/lib/cloud/instance/scripts/part-001: line 4: docker-compose: command not found
泊坞窗,撰写可当我ssh作为我创建我的自定义AMI之前安装它。
什么我失踪?
docker-compose可能已经提供给您用于SSH实例的用户(如ec2-user,ubuntu或admin),但它可能不适用于root用户,并且root用户与用户数据一起使用当亚马逊旋转一个新的实例。 所以你可能想在你的$ PATH中添加一个docker-compose的软链接。 – HakRo
谢谢@HakRou。 'root'' $ PATH'不包含'/ usr/local/bin'是奇怪的 - 我的两个选择是在用户数据中包含'export PATH = $ PATH:/ usr/local/bin',或者改为在/ usr/bin中安装docker-compose。不知道哪一个更“最佳实践” –
我会在/ usr/bin中安装docker-compose,或者直接在该文件夹中创建一个符号链接。它并不重要。 如果我的评论有帮助,我会把它变成一个答案。 – HakRo