Documentation

You are viewing the documentation for the 2.0.8 release in the 2.0.x series of releases. The latest stable release series is 2.4.x.

§追加設定

アプリケーションを本番モードで実行するときに、任意の設定を上書きすることができます。このセクションでは、この「追加設定」のよくあるユースケースを紹介します。

追加設定は Java のシステムプロパティを使って指定します。Play によって生成された start スクリプトを利用している場合、Java のシステムプロパテイを start スクリプトに直接指定することができます。

§HTTP サーバーのアドレスとポートを指定する

HTTP ポートとアドレスの両方を指定することができます。デフォルトはポート 9000 、アドレス 0.0.0.0 (全てのアドレス)です。

$ start -Dhttp.port=1234 -Dhttp.address=127.0.0.1

この設定はデフォルトの組み込み Netty サーバだけが利用します。

§JVM の起動オプションを指定する

start スクリプトに JVM の起動オプションを指定することができます。指定しなかった場合は、 JVM のデフォルト設定が利用されます。

$ start -Xms128M -Xmx512m -server

§代替の設定ファイルを指定する

デフォルトで読み込まれる設定ファイルはクラスパス上の application.conf です。必要に応じて、別の設定ファイルを指定することができます。

§-Dconfig.resource を使う

アプリケーションのクラスパスで代替の設定ファイルを検索します。(普通はこのような代替の設定ファイルを、パッケージング前にアプリケーションの conf/ ディレクトリに入れておくとよいでしょう。)

$ start -Dconfig.resource=prod.conf

§-Dconfig.file を使う

アプリケーションのバイナリにパッケージングされていない、ファイルシステム上の設定ファイルを指定することができます。

$ start -Dconfig.file=/opt/conf/prod.conf

§-Dconfig.url を使う

任意の URL を指定して、設定ファイルをロードすることができます。

$ start -Dconfig.url=http://conf.mycompany.com/conf/prod.conf

このとき、prod.conf に次のように include 命令を記述すると、元の設定ファイルを参照できます。

include "application.conf"

key.to.override=blah

§特定の設定キーを上書きする

設定ファイル全体を置き換えたいのではなく、いくつかの設定値キーを上書きできればよい、ということもあるでしょう。その場合は、 Java のシステムプロパティを利用して次のようにします。

$ start -Dapplication.secret=verysecretkey -Ddb.default.password=toto

§環境変数を使う

application.conf から環境変数を参照することができます。

my.key = defaultvalue
my.key = ${?MY_KEY_ENV}

フィールドを上書きする my.key = ${?MY_KEY_ENV} という記述をしました。これは、MY_KEY_ENV という値がない場合は単に無かった事にされます。しかし、MY_KEY_ENV という環境変数が設定されている場合は、環境変数の方が利用されます。

§logback の設定ファイルを変更する

システムプロパティを使って別の logback 設定ファイルを指定することができます。

§-Dlogger.resource を使う

別の logback 設定ファイルをクラスパスから読み込みことができます。

$ start -Dlogger.resource=conf/prod-logger.xml

§-Dlogger.file を使う

別の logback 設定ファイルをファイルシステムから読み込むことができます。

$ start -Dlogger.file=/opt/prod/logger.xml

§-Dlogger.url を使う

別の logback 設定ファイルを URL から読み込むことができます。

$ start -Dlogger.url=http://conf.mycompany.com/logger.xml