コンテナの設定
Liferayインストールで構成可能なものはすべて、Liferay Dockerコンテナで構成できます。
設定する最も一般的なものは次のとおりです。
コンテナにファイルを提供する設定のユースケースを、 bind mounts を使って示しています。 また、 volumes や、場合によってはdocker cp
コマンドを使用することもできます。 詳しくは コンテナへのファイルの提供 をご覧ください。
JVMオプション
TomcatのJVMオプションは、追加または置換できます。
JVMオプションをCATALINA_OPTSに追加する
JVM オプションは 、コンテナを作成する際に LIFERAY_JVM_OPTS
環境変数に指定することにより、Tomcat の CATALINA_OPTS
変数に追加できます。
docker run -it -m 8g -p 8080:8080 -e LIFERAY_JVM_OPTS=[value\ with\ space] liferay/dxp:[tag]
LIFERAY_JVM_OPTS`の値では、スペース文字をエスケープするためにバックスラッシュを使用します。 引用符は使用しないでください。
コンテナは Tomcat の CATALINA_OPTS
に追加された LIFERAY_JVM_OPTS
で実行されます。
setenv.shファイルの置き換え
JVMオプションを設定する別の方法は、Tomcatの setenv.sh
スクリプトを上書きすることが含まれます。 setenv.sh
スクリプトを素早く作成する方法は、Liferayコンテナからコピーすることです。 スクリプトのコピーを変更して新しいコンテナで使用する方法は次のとおりです。
-
既存のLiferayコンテナがある場合は、起動します。 それ以外の場合は、新しいものを実行します。
docker run -it --name tmp-dxp -p 8080:8080 liferay/dxp:[tag]
-
setenv.sh
ファイルをコンテナからコピーします。docker cp tmp-dxp:/opt/liferay/tomcat/bin/setenv.sh .
-
setenv.sh
のコピーで JVM オプションを設定します。 -
files/tomcat/bin
パスを作成するために、ホストフォルダとサブフォルダを作成します。mkdir -p [host folder]/files/tomcat/bin cp setenv.sh [host folder]/files/tomcat/bin
-
-v
オプションを使用してホストフォルダにバインドマウントする新しいコンテナを実行します。docker run -it -m 8g -p 8080:8080 -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
コンテナは setenv.sh
スクリプトの JVM オプションを使用します。
コンテナの/mnt/liferay
フォルダにバインドマウントする方法については、 コンテナへのファイル提供 を参照してください。
Liferayコンテナの起動と運用の詳細については、 Liferay Dockerイメージの使用 を参照してください。
ポータルプロパティ
コンテナのポータルプロパティ は、以下の2つの方法でオーバーライドできます:
Liferay環境変数の使用
ポータルプロパティ ごとに Env変数があります。 環境変数は、Liferay Dockerコンテナのポータルプロパティをオーバーライドする Docker環境変数 です。
-
ポータル プロパティ のオンライン説明で、オーバーライドするプロパティを見つけます。
-
プロパティ説明のすぐ下に表示される
Env
変数名をコピーします。 例えば、jdbc.default.jndi.name
ポータルプロパティのEnv変数は次のとおりです。Env: LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_JNDI_PERIOD_NAME
-
コンテナを作成し、パターン
-e VARIABLE_A=value -e VARIABLE_B=value ...
に従って-e
オプションを使用して環境変数の割り当てを渡します。 例:docker run -it -m 8g -p 8080:8080 -e LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_JNDI_PERIOD_NAME=jdbc/MyPool liferay/dxp:[tag]
warningEnv
変数値では、バックスラッシュを使用してスペース文字をエスケープします。 引用符は使用しないでください。noteデータベース環境変数の例については、 データベーステンプレート を参照してください。
noteコンテナの起動と運用の詳細については、 Liferay Dockerイメージの使用 を参照してください。
プロパティは、コントロールパネルの [設定] → [サーバー管理] → [プロパティ] → [ポータルプロパティ] で表示されます。
ポータルプロパティファイルの使用
コンテナのポータルプロパティは、 portal-ext.properties
ファイルを使用して上書きできます。 この例では、 バインドマウント を使用します。
-
ホストフォルダと
files
というサブフォルダを作成します。mkdir -p [host folder]/files
-
作成した
files
サブフォルダ内のportal-ext.properties
ファイルにプロパティの上書きを追加します。 例:echo "jdbc.default.jndi.name=jdbc/MyPool" >> [host folder]/files/portal-ext.properties
-
portal-ext.properties
ファイルのフォルダをコンテナの/mnt/liferay/files
フォルダにバインドマウントを含むマッピングするコンテナを作成します。 この例のportal-ext.properties
はfiles
という名前のフォルダーにあるため、 コンテナの/mnt /liferay
フォルダーにバインドマウント できます。docker run -it -m 8g -p 8080:8080 -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
プロパティは、コントロールパネルの [設定] → [サーバー管理] → [プロパティ] → [ポータルプロパティ] で表示されます。
データベースポータルプロパティの例については、 データベーステンプレート を参照してください。
画像定義の環境変数
Liferayイメージは、いくつかの環境変数を定義します。 いくつかの変数は、 Liferay Home パスや、Tomcat をデバッグモードで起動するオプションなど、内部的な設定を行います。 その他の変数は ポータルプロパティを設定します。 以下は、ポータルプロパティを設定する画像定義の環境変数です。
LIFERAY_MODULE_PERIOD_FRAMEWORK_PERIOD_PROPERTIES_PERIOD_OSGI_PERIOD_CONSOLE=0.0.0.0:11311
LIFERAY_SETUP_PERIOD_WIZARD_PERIOD_ADD_PERIOD_SAMPLE_PERIOD_DATA=false
LIFERAY_SETUP_PERIOD_WIZARD_PERIOD_ENABLED=false
LIFERAY_TERMS_PERIOD_OF_PERIOD_USE_PERIOD_REQUIRED=false
LIFERAY_USERS_PERIOD_REMINDER_PERIOD_QUERIES_PERIOD_ENABLED=false
ポータルプロパティに対応する環境変数は、ポータルプロパティファイルの設定よりも優先されます。
上記を含むすべてのDocker環境変数は不変です。 環境変数を設定する場合、またはLiferayのイメージ定義の環境変数に依存する場合は、必要な値があることを確認してください。
環境変数オプション
イメージ定義の環境変数を操作するためのオプションは、次の通りです。
-
画像で定義されたデフォルトを使用します。 自動的に設定されます。
-
コンテナの実行時に環境変数を設定して、デフォルト値を上書きします。 例えば、
docker run -e [variable]=[value] ...
です。 -
割り当てなしで宣言することにより、環境変数を無効にします (つまり、
=
の文字がない場合)。 形式は次のとおりですe [varable]
イメージ定義の Portal 環境変数を無効にすると、コンテナ起動時の Portal プロパティ ファイル で必要な値を柔軟に指定できます。 例:
docker run -e [varable] -v [host folder path]:/mnt/liferay ...
例:画像定義のポータルプロパティ環境変数の操作
次の画像で定義されているポータルプロパティ環境変数は、ユーザーが使用条件に同意する必要がないことを宣言しています。
LIFERAY_TERMS_PERIOD_OF_PERIOD_USE_PERIOD_REQUIRED=false
これを無効にし、ポータルプロパティファイルを使用して操作する方法は次のとおりです。
-
環境変数を無効にし、ポータルプロパティファイルのバインドマウントを設定します。
docker run -e LIFERAY_TERMS_PERIOD_OF_PERIOD_USE_PERIOD_REQUIRED -v $(pwd):/mnt/liferay ...
利用規約の要件は、ポータルプロパティに基づいています。 デフォルトのポータルプロパティ設定 (
LIFERAY_TERMS_PERIOD_OF_PERIOD_USE_PERIOD_REQUIRED
の検索)には、利用規約が必要です。terms.of.use.required=true
-
バインドマウントパスにある
portal-ext.properties
ファイルに必要な設定を指定します。 ポータルプロパティファイルを使用する を参照してください。echo "terms.of.use.required=false" >> ./files/portal-ext.properties
-
コンテナを再起動します。
コンテナはプロパティ設定を使用します。
システムプロパティ
システムプロパティ は system-ext.properties
ファイルを使用して上書きできます。 この例では、 バインドマウント を使用します。
-
[host folder]/files/tomcat/webapps/ROOT/WEB-INF/classes
を作成します。mkdir -p [host folder]/files/tomcat/webapps/ROOT/WEB-INF/classes
-
[host folder]/files/tomcat/webapps/ROOT/WEB-INF/classes
フォルダ内のsystem-ext.properties
ファイルにプロパティの上書きを追加します。 例:echo "net.sf.ehcache.skipUpdateCheck=false" >> [host folder]/files/tomcat/webapps/ROOT/WEB-INF/classes/system-ext.properties
-
-v
オプションを使用してホストフォルダにバインドマウントする新しいコンテナを実行します。docker run -it -m 8g -p 8080:8080 -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
noteコンテナの
/mnt/liferay
フォルダにバインドマウントする方法については、 コンテナへのファイル提供 を参照してください。
プロパティは、コントロールパネルの [設定] → [サーバー管理] → [プロパティ] → [システムプロパティ] で表示されます。
システム設定
Liferayシステム設定は、 コントロールパネル または 構成ファイル (.config
ファイル)をコンテナに提供することで構成できます。 最初から .config
ファイルを作成するか、UIからコンポーネント設定値をエクスポートすることができます。
次のいずれかの方法を使用して、システム設定を変更します。
新しいコンテナへの構成の適用
コンテナをまだ作成していない場合は、次の手順に従って、 バインドマウントを使用して .config
ファイルを新しいコンテナに提供します。
-
[host folder]/files/osgi/configs
を作成するために、ホストフォルダとサブフォルダを作成します。mkdir -p [host folder]/files/osgi/configs
-
.config
ファイルをホストフォルダのfiles/osgi/configs
サブフォルダにコピーします。 例:cp ~/*.config [host folder path]/files/osgi/configs
-
-v
オプションを使用してホストフォルダにバインドマウントするコンテナを実行します。docker run -it -m 8g -p 8080:8080 -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
noteコンテナの
/mnt/liferay
フォルダにバインドマウントする方法については、[コンテナへのファイル提供](./providing-files-to-the-container.md#bind-mounting-a-host-folder-to-mnt-liferay)を参照してください。
システムコンポーネントの構成は、そのコンポーネントの画面のコントロールパネルで、 [設定] → [システム設定] に表示されます。
実行時の構成ファイルの適用
すでにコンテナがある場合は、次のような docker cp
コマンドを使用して、実行時に .config
ファイルをコンテナにコピーできます。
docker cp [config file] [container]:/opt/liferay/osgi/configs
まとめ
LiferayコンテナのJVMオプション、ポータルプロパティ、イメージ環境変数、システムプロパティ、およびシステム設定を構成する方法をマスターしました。