私のアプリケーションディレクトリとドッカーイメージを持つカスタムAMIがあります。私は新しいインスタンスを作成するために起動設定で自動スケールグループを設定しています。私は、アプリケーションを起動するためのユーザーデータスクリプトを持っています。これはコードです:EC2ユーザーデータはスクリプトを実行しますが、アプリケーションは起動しません
#!/bin/bash
docker-compose -f /home/ec2-user/app/docker-compose.yaml up -d app
スクリプトは実行されますが、アプリケーションは実行されません。私はSSHして手動で動作するアプリを実行することができます。クラウドのinit-Output.logですファイルを見て、私は次のようになっている:私は私のカスタムAMIを作成する前にそれをインストールしているように私は、SSHとき
/var/lib/cloud/instance/scripts/part-001: line 4: docker-compose: command not found
ドッカー-コンが使用可能です。
何か不足していますか?
あなたのインスタンス(ec2-user、ubuntu、adminなど)をSSHしたユーザーがdocker-composeを利用できた可能性がありますが、rootには利用できず、rootはuser-data Amazonが新しいインスタンスをスピンするとき。 $ PATHにdocker-composeのソフトリンクを追加したい場合があります。 – HakRo
ありがとう@HakRou。 'root' '$ PATH'に'/usr/local/bin'が含まれていないのは不思議です。私の2つのオプションは 'export PATH = $ PATH:/ usr/local/bin'をユーザデータに含めるか、代わりに '/ usr/bin'にdocker-composeをインストールしてください。どちらが "ベストプラクティス"であるかわからない –
私はdocker-composeを/ usr/binにインストールするか、単にそのフォルダ内のシンボリックリンクを作成します。それは本当に重要ではありません。 私のコメントが役に立ったら、私はそれを答えに変えます。 – HakRo