2016-08-17 14 views
0

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 imagesdocker psはどちらも、イメージまたはコンテナがインスタンス上に存在しないことを示しています。

コマンドは、ドッキング・コンテナをプルして実行することなく、インスタンスを正常に開始します(Dockerはデフォルトでインスタンス上で実行されているため、起動する必要はありません)。インスタンスを起動した後、スクリプトの内容を端末に貼り付けて実行すると、コンテナがプルされて実行されるため、スクリプトに問題がないように見えます。

+0

AWS Webコンソールからインスタンスのユーザーデータを表示すると、ユーザーのデータコンテンツが正しく表示されますか? AMIは実際にクラウド初期化サービスをインストールしていますか? –

+0

このファイルstartlb.shのパーミッションは? – error2007s

+0

クラウド初期ログ(おそらく '/ var/log/cloud-init *')をチェックして、何らかの理由でスクリプトが実行されたかどうかを確認します。 –

答えて

1

結局のところうまくいっていました。私はドッカーがすべてをダウンロードするのに十分な時間を取っていませんでした。数分後にログファイル、イメージ、およびコンテナの存在を確認すると、すべてがそこにあることがわかりました。

関連する問題