5

https://developer.cloudbees.com/bin/view/RUN/Playframeworkの指示に従って、デプロイできます。ただし、application.conf のみを使用します。

私のアプリ ID は「mrm」なので、conf ディレクトリに「mrm.conf」を作成しました。

次に、「play cloudbees-deploy-config mrm」を試しましたが、デプロイ後に次のエラー メッセージが表示されます。

[success] Total time: 110 s, completed Mar 15, 2013 9:08:36 PM
[error] Not a valid command: mrm (similar: run)
[error] Expected '/'
[error] Expected ':'
[error] Not a valid key: mrm (similar: run)
[error] mrm

そして、展開はまだapplication.confを使用しています

それから play を実行して、次のように入力しました: "cloudbees-deploy-config mrm"

私の「mrm.conf」にはこれが含まれています:

include "application.conf"
cloudbees.applicationId=mrm

このプルリクエストで説明されている手順に従ってみました: https://github.com/CloudBees-community/sbt-cloudbees-play-plugin/pull/1

play help によると、次のようにできるはずです:

cloudbees-deploy-config

  Deploy a configuration of your app to a Run@Cloud app id. Arguments are:
  (1) the base name of a conf file in your project's conf directory, defaulting to     "application"/
  (2) Optional. The application id to which this configuration should deploy. You can omit this
      arg if you have either set cloudbees.applicationId in the config file from the first
      arg or have set the project ID in your PlayProject.

  Example usage: `> cloudbees-deploy-config live`, where live.conf exists in the project's conf/
  directory and contains a key cloudbees.applicationId.

私が間違っている可能性のあることのヒントはありますか? cloudbees デプロイメントで mrm.conf を使用する必要があります...

答え:

play "cloudbees-deploy-config mrm"

更新: ソリューションの概要をブログに投稿しました: http://www.poornerd.com/2013/04/08/how-deploy-play-framework-apps-with-different-configurations-to-cloudbees/

4

3 に答える 3

5

CloudBees でアプリ/フレームワークの構成を調整する方法は、フレームワークごとに異なります。使用する必要がある基本的なテクニックは次のとおりです。

  1. ローカルで実行しているときに、この代替構成ファイルを読み込むようにアプリに指示する方法を考えてください
  2. アプリケーションの起動時に CloudBees に同等の動作をさせる方法を理解する

代替プレイ構成ファイルのロード

Play2 サイトのConfigurationまたはProductionConfigurationドキュメントに基づいて、 -Dconfig.resource=CONF_FILENAME システム プロパティを指定して、Play2 に別の構成をロードするように指示できるようです。

-Dconfig.resource を使用

すると、アプリケーションのクラスパスで代替構成ファイルが検索されます (通常、これらの代替構成ファイルは、パッケージ化する前にアプリケーションの conf/ ディレクトリに提供されます)。

 $ start -Dconfig.resource=prod.conf

これに基づいて、ランタイム フレームワーク (Play) に別の構成ファイルをロードするように指示する方法がわかりました。次に、CloudBees が同じことを行うようにする必要があります。

CloudBees でのシステム プロパティの設定

CloudBees SDKには、起動時に (JVM ベースのアプリの) システム プロパティとして挿入されるアプリの構成パラメーターを設定するためのコマンド ライン オプションが含まれています。これは、app:deploy コマンド ラインで -Pname=value オプションを指定するか、代わりに config:set コマンドを使用して実行できます。

SBT プラグインを使用してアプリをデプロイしているため (この機能はサポートされていない可能性があります)、おそらく SDK の config:set コマンドを使用するのが最も簡単でしょう。

bees config:set -a APPID config.resource=mrm.conf

注: この構成パラメーターを適用するには、アプリを再起動する必要があります

Play2 のドキュメントを正しく理解していれば、Play は conf/mrm.conf に設定ファイルをロードするはずです。

よりシンプルなソリューション? - キーを上書きするだけ

あなたの例に基づいて、デフォルトの application.conf ファイル内の特定の構成キーの値のみをオーバーライドしようとしているように見えることに気付きました...

Play ProductionConfigurationのドキュメントを見ると、構成ファイル全体をオーバーライドするのはやり過ぎのようです。代わりに、システム プロパティを使用してオーバーライドする値を指定するだけでよいようです。CloudBees SDK のconfig:setコマンドは、まさにこのユースケース向けに設計されており、カスタム アプリ パラメーターを挿入する簡単な方法を提供します。CloudBees 上の Java ベースのスタックは、これらのパラメーターをシステム プロパティとして挿入します。つまり、Play アプリによって自動的に取得される必要があります。

mrm.conf ファイルのオーバーライドの例に基づいて、次のように動作するはずです。

bees config:set -a APPID cloudbees.applicationId=mrm

これが適切に機能する場合は、この情報の一部をCloudBees Playドキュメントに追加します。

于 2013-03-28T16:48:50.483 に答える
0

これは部分的な解決策に過ぎませんが:

プレイを開始したら、「cloudbees-deploy-config mrm」と入力すると、mrm.conf でデプロイされます

于 2013-03-16T20:16:15.463 に答える
0

I'd suggest reversal situation: for live application place all configs required by CloudBees in application.conf so you will not need to override the config file.

On local machine create something like local_conf.conf and there 'deactivate' config params specific for CloudBees only. Additionaly you can write one-line bash script on local env, for running application with additional config (so you won't need to use -Dconfig.file-..." everytime.

于 2013-03-15T21:52:19.200 に答える