【发布时间】:2016-11-29 17:18:24
【问题描述】:
我有一个自定义 AMI,其中包含我的应用程序目录和 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。
我缺少什么吗?
【问题讨论】:
-
docker-compose 可能对您用来通过 SSH 连接您的实例的用户(如 ec2-user、ubuntu 或 admin)可用,但它可能对 root 不可用,而 root 是唯一的当 Amazon 启动新实例时与用户数据一起使用。所以你可能想在你的 $PATH 中添加一个 docker-compose 的软链接。
-
谢谢@HakRou。奇怪的是
root$PATH不包含/usr/local/bin- 我的两个选项是在用户数据中包含export PATH=$PATH:/usr/local/bin,或者在/usr/bin中安装 docker-compose。不确定哪一个更“最佳实践” -
我会在 /usr/bin 中安装 docker-compose,或者只是在该文件夹中创建一个指向它的符号链接。这并不重要。如果我的评论有帮助,我会把它变成答案。
标签: docker amazon-ec2