DockerでDXPにパッチを適用する
Liferay パッチ は DXP の問題を修正し、パッチ適用ツールがパッチを適用します。 Docker Hubでは、Liferay は新しい Fix Pack、 Security Fix Pack、および Service Pack があらかじめ含まれたイメージを提供しています。 Liferay は、DXP コンテナにインストールするための セキュリティ修正パック、 ホットフィックス、および新しい パッチツール バージョンも提供しています。
エンタープライズサブスクリプション
パッチを適用する前に、必ず データベースとインストールを バックアップしてください。
フィックスパック、セキュリティフィックスパック、およびサービスパックイメージの使用
フィックスパック、セキュリティフィックスパック、およびサービスパックのイメージは、 スリムバンドル に基づいています。 Slim Bundles は通常の Liferay Tomcat バンドル よりも起動が速く、フットプリントも小さくなっています。 ただし、スリムバンドルに適用できるパッチは1つだけです。 したがって、これらのイメージには、次のパッチ適用の制限があります。
-
フィックスパックおよびサービスパックイメージは、ホットフィックスやセキュリティフィックスパックなどの追加パッチを1つだけ受け取ることができます。
-
セキュリティフィックスパックイメージにパッチを適用することはできません。 これらは、セキュリティフィックスパックですでにパッチが適用されたフィックスパックで構成されています。
新しいフィックスパック、セキュリティフィックスパック、またはサービスパックのイメージを使用するには、そのイメージに基づいてコンテナに移行する必要があります。 DXPコンテナから新しいパッチイメージに移行する方法は次のとおりです。
-
DXPコンテナをカスタマイズするために使用したファイルを バックアップします。
git commit -a -
Docker Hub から新しいイメージをダウンロードしてください。
docker pull liferay/dxp:[tag] -
イメージに基づいて、バックアップのアーティファクトと設定ファイルを使用する新しいコンテナを作成します。
たとえば、アーティファクトとファイルを次のようなローカルフォルダ構造に配置できます。
[host folder] ├───deploy ├───files ├───patching └───scripts次に、
実行コマンドでコンテナの/mnt/liferayフォルダにホストフォルダをバインドマウントする。docker run ... -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
DXPは、アーティファクトとファイルを使用して新しいコンテナで起動します。
パッチのインストール
フィックスパックイメージとサービスパックイメージは、追加のパッチの受け取りが1回に制限されています。 パッチは、ホットフィックス、セキュリティフィックスパック、またはその両方を組み合わせたパッチにすることができます。 この最後のタイプのパッチを入手するには、ヘルプセンターのチケットを作成し、現在のフィックスパックレベルに加えて最新のセキュリティ修正と製品修正を含むパッチを要求します。
パッチ要件:
-
コンテナに既存のパッチがない。 新しいパッチを適用する前に、既存のパッチはすべて 元に戻す必要があります。
-
イメージはセキュリティフィックスパックイメージであってはなりません。これらのイメージには、すでにパッチ(セキュリティフィックスパック)が含まれています。
-
コンテナの
/mnt/liferay/patchingフォルダにマップするボリュームまたはバインドマウントのフォルダ。 詳細については、 コンテナへのファイルの提供 を参照してください。
コンテナにパッチをインストールする方法は2つあります。
既存のコンテナへのインストール
既存のコンテナにパッチをインストールする手順は次のとおりです。
新しいコンテナへのインストール
新しいコンテナにパッチをインストールする手順は次のとおりです。
-
ホストフォルダと
patchingというサブフォルダを作成します。mkdir -p [host folder]/patching -
パッチをダウンロードして、
[host folder]/patchingフォルダにコピーします。 例えば、cp ~/[patch file] [host folder]/patching -
現在実行中の DXP コンテナを停止します。
-
パッチファイルのフォルダをコンテナの
/mnt/liferay/patchingフォルダにマップするバインドマウントを含むコンテナを作成します。 この例のパッチ ファイルはpatchingというフォルダにあるので、 その親フォルダ ([ホスト フォルダ]) をコンテナの/mnt/liferayフォルダにバインド マウント できます。 これにより、DXPに適用するためのパッチにアクセスできるようになります。docker run ... -v [host folder path]:/mnt/liferay liferay/dxp:[tag]注バインドマウントの指定方法の詳細については、 コンテナへのファイルの提供 を参照してください。
パッチツールがパッチをインストールし、DXPが起動します。
パッチツールが次のメッセージを報告する場合: [パッチファイル]はパッチツールバージョン[xyz]と互換性がありません。最新のパッチツールをインストールしてください。 詳細については、 パッチ適用ツールのインストール を参照してください。
パッチを元に戻す
コンテナからパッチを元に戻したり、パッチを適用したコンテナに別のパッチをインストールしたりする場合は、コンテナを削除して新しいコンテナを作成する必要があります。
-
docker stop [container] -
コンテナを削除します。
docker rm [container] -
以前に使用した
docker run引数を使用して、同じイメージまたは互換性のあるフィックスパックレベルを持つイメージから新しいコンテナを作成します。 ボリュームまたは バインドマウントを介して、任意のパッチを適用します。
パッチングツールの更新
現在のパッチツールがインストールするパッチと互換性がない場合、パッチツールには次のメッセージが報告されます: [patch file] is incompatible with Patching Tool version [x.y.z](x.y.zはツールのメジャー、マイナー、およびマクロのバージョン番号です)。
新しい パッチツール バージョンのインストール方法は次のとおりです。
-
カスタマーポータルから最新のパッチ適用ツールをダウンロードしてください。
-
パッチツールのZIPファイル名の形式が
patching-tool-x.y.z.zipでない場合は、その形式を使用するよう名前を変更します。 例:mv patching-tool.zip patching-tool-2.0.15.zip -
コンテナの
/mnt/liferay/patchingフォルダを介して、パッチツール ZIP ファイルをコンテナにインストールします。これは、 ホットフィックスとセキュリティ修正パックが インストールされるのと同じ方法です。
コンテナを再起動するか新しいコンテナを実行すると、コンテナのエントリポイントによって新しいパッチツールがインストールされます。
パッチのためのデータベースのアップグレード
パッチでデータベースのアップグレードが必要な場合は、コンテナ化されていない環境でデータベースアップグレードツールを使用してアップグレードする必要があります。
-
使用しているLiferayのバージョンのLiferay Tomcat Bundleのインストールをインストールします。
-
インストールにパッチを適用します。 詳細については、 Liferay のパッチ適用 を参照してください。
-
データベースアップグレードツールを使用してデータベースをアップグレードします。 詳細については、 データベースアップグレードツールの使用 を参照してください。
データベースがアップグレードされたら、そのデータベースを使用するコンテナを実行します。