DockerでDXPにパッチを適用する
Liferay パッチ は DXP の問題を修正し、パッチ適用ツールによってパッチが適用されます。 Docker Hubでは、Liferay は新しい Fix Pack、 Security Fix Pack、および Service Packが事前に入力されたイメージを提供します。 Liferay は、DXP コンテナにインストールするための セキュリティ修正パック、 ホットフィックス、および新しい パッチ適用ツール バージョンも提供しています。
エンタープライズサブスクリプション
パッチを適用する前に、必ずデータベースとインストールを バックアップ してください。
フィックスパック、セキュリティフィックスパック、およびサービスパックイメージの使用
Fix Pack、Security Fix Pack、および Service Pack のイメージは、 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フォルダー にバインド マウントします。rundocker run ... -v [host folder path]:/mnt/liferay liferay/dxp:[tag]
DXPは、アーティファクトとファイルを使用して新しいコンテナで起動します。
パッチのインストール
フィックスパックイメージとサービスパックイメージは、追加のパッチの受け取りが1回に制限されています。 パッチは、ホットフィックス、セキュリティフィックスパック、またはその両方を組み合わせたパッチにすることができます。 この最後のタイプのパッチを入手するには、ヘルプセンターのチケットを作成し、現在のフィックスパックレベルに加えて最新のセキュリティ修正と製品修正を含むパッチを要求します。
パッチ要件:
-
コンテナに既存のパッチがない。 新しいパッチを適用する前に、既存のパッチを 元に戻す 必要があります。
-
イメージはセキュリティフィックスパックイメージであってはなりません。これらのイメージには、すでにパッチ(セキュリティフィックスパック)が含まれています。
-
コンテナの
/mnt/liferay/patchingフォルダにマップするボリュームまたはバインドマウントのフォルダ。 詳細については、「 コンテナへのファイルの提供 」を参照してください。
コンテナにパッチをインストールする方法は2つあります。
既存のコンテナへのインストール
既存のコンテナにパッチをインストールする手順は次のとおりです。
-
パッチをダウンロード し、コンテナの
/mnt/liferay/patchingフォルダにマップされるボリュームまたは バインドマウント 内のフォルダにコピーします。
新しいコンテナへのインストール
新しいコンテナにパッチをインストールする手順は次のとおりです。
-
ホストフォルダと
patchingというサブフォルダを作成します。mkdir -p [host folder]/patching -
パッチをダウンロード し、それを
[ホスト フォルダー]/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 のパッチ適用 を参照してください。
-
データベースアップグレードツールを使用してデータベースをアップグレードします。 詳細については、 データベース アップグレード ツールの使用 を参照してください。
データベースがアップグレードされたら、そのデータベースを使用するコンテナを実行します。