AWS CLIを使用して、DockerがインストールされているイメージからEC2インスタンスを開始しようとしています。 --user-data
によって、ドッカーハブからイメージを引き出し、そのイメージを実行します。私のAWS CLIコマンドはインスタンスを起動しますが、--user-data
に渡されたスクリプトは決して実行されません。AWS CLIからEC2インスタンスを起動するときにユーザーデータスクリプトが実行されない
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
私は任意の標準出力が発生するかどうかを確認するためにSTARTUP.LOGにドッキングウィンドウのコマンドの出力をリダイレクトしています。インスタンスにログインすると、ログファイルが作成されず、user-data
スクリプトが実行されることはありません。 docker images
とdocker ps
はどちらも、イメージまたはコンテナがインスタンス上に存在しないことを示しています。
コマンドは、ドッキング・コンテナをプルして実行することなく、インスタンスを正常に開始します(Dockerはデフォルトでインスタンス上で実行されているため、起動する必要はありません)。インスタンスを起動した後、スクリプトの内容を端末に貼り付けて実行すると、コンテナがプルされて実行されるため、スクリプトに問題がないように見えます。
AWS Webコンソールからインスタンスのユーザーデータを表示すると、ユーザーのデータコンテンツが正しく表示されますか? AMIは実際にクラウド初期化サービスをインストールしていますか? –
このファイルstartlb.shのパーミッションは? – error2007s
クラウド初期ログ(おそらく '/ var/log/cloud-init *')をチェックして、何らかの理由でスクリプトが実行されたかどうかを確認します。 –