2016-03-04 5 views
18

aws elasticbeanトーク中。 弾性ビッグトークのコマンドとコンテナコマンドの違いは何ですか?

.ebextensionsにおける我々のセットアップの拡張子が

私は私のコマンドは、この

container_commands: 
    04_insert_app: 
    command: "cat .ebextensions/insertapp_job.txt > /etc/cron.d/insertapp_job && chmod 644 /etc/cron.d/insertapp_job" 
    leader_only: true 

container_commandsのようなものです

commands間とcontainer_commands違いがあるのだろうか仕事です。

コマンドは:エラー.ebextensions/insertapp_job.txt

答えて

1

を見つけていない私はここに aws offcial docs

commands私の答えを見つけた:EC2インスタンス上

container_commandsをコマンドを実行します。あなたのコンテナのコマンドを実行

24

これらの2つの部分の主な違いは、Elastic Beanstalkの展開プロセスでは走る

コマンド

これらのコマンドは、初期の展開プロセスで実行されているWebサーバが設定されている前に、あなたのアプリケーションのコードが展開される前に:

コマンドはアルファベット順に処理されています名前で実行され、アプリケーションとWebサーバーがセットアップされ、アプリケーションのバージョンファイルが抽出される前に実行されます。 1

デフォルトでは、コマンドはrootユーザーのホームフォルダで実行されます。これと他のさまざまなEBの振る舞いは、コマンドと共に渡すことができるオプション(作業ディレクトリ、エラー時に続行するかどうか、環境変数をコマンドに渡すかどうかなど)によって変更できます。

コンテナコマンド

これらのコマンドは、Webサーバーが設定されている、およびアプリケーションコードの後に​​ステージングフォルダに解凍した後に、展開プロセスの後半で実行されますが、あなたのアプリケーションは、「配布される前

アプリケーションとWebサーバーが設定され、アプリケーションバージョンのアーカイブが抽出された後、アプリケーションバージョンが展開される前にコンテナコマンドが実行されます(ステージングフォルダを最終位置に移動します)。非コンテナコマンドおよびその他のカスタマイズ操作は、アプリケーションソースコードが抽出される前に実行されます。 2

はデフォルトでは、これらのコマンドは、アプリケーションが展開されると、あなたは現在のフォルダに加えた変更が持続するように、ステージングフォルダに実行します(パスはとても相対リンクについて注意してください、しかし変わります!) 。(非コンテナ)コマンドとして

コンテナのコマンドはすべて同じオプションをサポートしていますが、彼らはまた、「leader_only」オプションをサポート:あなたは、単一のインスタンス上でコマンドを実行するだけにleader_only使用することができます

を、またはテストコマンドがtrueと評価されたときにのみコマンドを実行するようにテストを構成します。リーダーのみのコンテナーコマンドは、環境の作成およびデプロイメント中にのみ実行され、他のコマンドおよびサーバーのカスタマイズ操作は、インスタンスのプロビジョニングまたは更新のたびに実行されます。私はちょうどcommandscontainer_commandsの両方がホストマシン上で実行されていることを明確にしたい@Tiroに加え及び@のt10508hnの答えとして

+1

私はこの2日前に見ましたが...投稿していただきありがとうございます。 :-) – speckledcarp

+0

"相対リンクに注意してください"。あなたは絶対的なリンクを意味しますか?ソースバンドル内に留まる相対リンクはうまくいくはずですか? –

4

2

ドッカーコンテナ内でコマンドを実行するには、Dockerfileを使用します。

これは、leader_onlyでいくつかのコマンドを実行しなければならないときに、実際にはコンテナ内でcontainer_commandsが実行されたと仮定すると、混乱する点でした。

関連する問題