SAE コンソールでコンテナイメージまたはコードパッケージを使用してアプリケーションをデプロイすると、SAE はプリセットの起動パラメーターを使用してコンテナを起動します。 コンテナの起動時に Nginx のような特別な設定を実行する必要がある場合、またはプリセットの起動パラメーターを使用したくない場合は、コンテナの 起動コマンド をカスタマイズできます。 これにより、特別な設定を適用したり、イメージのデフォルトの起動パラメーターを上書きしたりできます。
エントリポイント
手順はシナリオによって異なります。
アプリケーションの作成
SAE コンソールにログインします。左側のナビゲーションペインで、[Applications] > [Application List] を選択します。対象のリージョンと名前空間を選択し、Create Application をクリックします。
Basic Information ウィザードページで、必要な設定を行い、Next: Advanced Settings をクリックします。
実行中のアプリケーションの変更
アプリケーションを再デプロイすると、アプリケーションは再起動されます。 業務中断などの予測できないエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることを推奨します。
SAE コンソールにログインします。左側のナビゲーションペインで、[Applications] > [Application List] を選択します。対象のリージョンと名前空間を選択し、対象アプリケーションの名前をクリックします。
対象アプリケーションの Basic Information ページで、Deploy Application をクリックします。
停止中のアプリケーションの変更
SAE コンソールにログインします。左側のナビゲーションペインで、[Applications] > [Application List] を選択します。対象のリージョンと名前空間を選択し、対象アプリケーションの名前をクリックします。
対象アプリケーションの Basic Information ページで、[Modify Application Configurations] をクリックします。
アプリケーション起動コマンドの設定
イメージ
通常、起動コマンドを設定する必要はありません。イメージのビルド時に、Dockerfile 内の ENTRYPOINT または CMD 命令が、コンテナの起動コマンドをすでに定義しています。
たとえば、Dockerfile 内の次のコマンドは、コンテナの起動時に実行されます。
ENTRYPOINT [nginx, '-g', 'daemon off;'] Dockerfile で設定された起動コマンドをオーバーライドするには、次の手順に従います。
[Startup Command] セクションで、[>_ /bin/sh] や [>_ /bin/bash] などのスクリプトインタープリターを選択します。選択したインタープリターがイメージ内に存在していることを確認してください。
コンテナの起動コマンドを設定します。形式は次のとおりです。
[>_ /bin/sh]
sh -c 'while true; do echo hello; sleep 10;done'[>_ /bin/bash]
bash -c 'while true; do echo hello; sleep 10;done'
元の Dockerfile の ENTRYPOINT および CMD の設定に精通していない場合は、起動コマンドやそのパラメーターをカスタマイズしないでください。無効なコマンドは、アプリケーション作成が失敗する原因となります。
JAR パッケージ
Java アプリケーションを起動して実行するには、JVM パラメーターや GC ポリシーなどの起動コマンドとパラメーターを定義する必要があります。
SAE は、アップロードされた JAR パッケージを自動的にイメージにコンパイルし、アプリケーションをコンテナとして実行します。コンパイル時に、SAE は組み込みの起動コマンド、パラメーター、および JAR パッケージのパスを設定します。SAEコンソールを使用して、デフォルトの起動コマンドとそのパラメーターを変更できます。
Startup Command Settings セクションで、必要な設定を入力します。起動コマンドの例を次に示します。
デフォルトの起動コマンドは $JAVA_HOME/bin/java $Options -jar $CATALINA_OPTS "$package_path" $args です。
パラメーター | 説明 |
[Default Startup Command] | SAE が提供するデフォルトの起動コマンドです。 |
[Options Settings] | JVM パラメーターを設定します。詳細については、「JVM パラメーター設定時の注意点」、「Java 仮想マシンのチューニング」、および「JVM チューニング:パフォーマンスチューニングのための環境準備」をご参照ください。 アプリケーションのリモートデバッグを有効にするには、お使いの JDK バージョンに対応するコマンドを追加します。
各パラメーターの説明は次のとおりです。
重要 WAR パッケージと JAR パッケージからデプロイされたアプリケーションの起動コマンドは異なります。混同して使用しないでください。この例のリモートデバッグコマンドは、両方のデプロイ方法に適用されます。 |
[args Settings] | 標準出力と標準エラー出力をリダイレクトするコマンド (例: |
WAR パッケージ
Startup Command Settings セクションで、必要な設定を入力します。起動コマンドの例を次に示します。
デフォルトの起動コマンドは CATALINA_OPTS="$CATALINA_OPTS $Options" catalina.sh run です。ここで、$Options は [Options Settings] セクションで指定する JVM パラメーターのプレースホルダーです。OOM を回避するため、ヒープメモリをインスタンスの総メモリよりも小さい値に設定し、1 GB のスペースを確保することを推奨します。詳細については、「JVM 設定のベストプラクティス」をご参照ください。
パラメーター | 説明 |
[Default Startup Command] | SAE によって提供されるデフォルトの起動コマンド |
[Options Settings] | JVM パラメーターを設定します。詳細については、「JVM パラメーター設定時の注意点」、「Java 仮想マシンのチューニング」、および「JVM チューニング:パフォーマンスチューニングのための環境準備」をご参照ください。 アプリケーションのリモートデバッグを有効にするには、お使いの JDK バージョンに対応するコマンドを追加します。
各パラメーターの説明は次のとおりです。
重要 WAR パッケージと JAR パッケージからデプロイされたアプリケーションの起動コマンドは異なります。混同して使用しないでください。この例のリモートデバッグコマンドは、両方のデプロイ方法に適用されます。 |
ZIP パッケージ
Startup Command セクションで、スクリプトインタープリターを選択し、コンテナの起動コマンドを設定します。
[>_ /bin/sh]
sh -c 'gunicorn -w 3 -b 0.0.0.0:8080 app.hello:app'[>_ /bin/bash]
bash -c 'gunicorn -w 3 -b 0.0.0.0:8080 app.hello:app'