Dockerの活用

Dockerは、自動でソフトウェアとその依存関係をクロスプラットフォームで共有できる標準化されたユニットにパッケージ化でき、今日の開発ライフサイクルでますます人気が高まっています。詳細については、Dockerの多数あるドキュメンテーションを参照してください。

Liferayでは、Dockerイメージを以下のサービスで提供しています。

LiferayのDockerイメージをこれらのリソースから引き出して、自分で管理することができます。ただし、Liferay Workspaceは、事前に設定されたGradleタスクを使用して、既存の開発ワークフローにDocker開発を統合する簡単な方法を提供します。

このチュートリアルでは、ワークスペース内で以下のタスクを実行する方法を説明します。

Liferay DXPのDockerコンテナの作成

  1. 必要なDockerイメージを選択します。これは、このプロパティをカスタマイズすることにより、ワークスペースのgradle.propertiesファイルに設定されます。

    liferay.workspace.docker.image.liferay
    

    設定可能なプロパティ値を見つけるには、Liferay DXPの公式のDocker Hubのタグセクション(例: Liferay Portal Dockerタグなど)を参照してください。 たとえば、Liferay Portal 7.1 GA2イメージに基づいてコンテナを作成する場合は、以下のプロパティを設定します。

    liferay.workspace.docker.image.liferay=liferay/portal:7.1.1-ga2
    
  2. ワークスペースのルートフォルダから次のコマンドを実行します。

    ./gradlew createDockerContainer
    

このコマンドは、[projectName]-liferayappという名前の新しいコンテナを作成します。ワークスペースに新しいbuild/dockerフォルダが作成されます。このフォルダは、コンテナのファイルシステムにマウントされます。つまり、ワークスペースのbuild/dockerフォルダ内のファイルは、コンテナの/etc/liferayフォルダでも使用できます。

ワークスペース内のプロジェクトはすべてコンテナ作成時にbuild/docker/deployに自動的にコンパイルされ、コピーされます。つまり、コンテナが開始されると、すべてのプロジェクトがコンテナにデプロイされることになります。すべての設定はコンテナにも適用されます。次に、コンテナの設定方法について詳しく説明します。

コンテナの設定方法

コンテナを起動する前に、追加のポータル設定を追加できます。これには以下のようなものが含まれます。

  • プロパティのオーバーライド(例: portal-ext.properties
  • Marketplaceアプリのオーバーライド
  • アプリサーバーの設定
  • ライセンスファイル

これを行うには、ワークスペースのconfigs/dockerフォルダにファイル(と必要に応じて付随するフォルダ構造)を適用します。このフォルダは、Docker開発用のLiferayホームとして扱われます。ワークスペースのconfigs/commonフォルダとLiferay DXPのコンテナのデフォルト設定をオーバーレイする、追加ファイルを追加します。

たとえば、コンテナのGogoシェルを有効にするには、configs/docker/portal-ext.propertiesをワークスペースに以下の設定で追加します。

module.framework.properties.osgi.console=0.0.0.0:11311

これにより、Gonetシェルを使用してtelnetセッション経由でコンテナにアクセスできます。

コンテナが開始されると、configs/commmonconfigs/dockerに保存されている設定がbuild/docker/filesフォルダに転送されます。これにより、すべての設定がコンテナのファイルシステムに適用されます。ワークスペースのconfigsフォルダの詳細については、こちらのセクションを参照してください。

次に、コンテナと対話するためのコマンドを説明します。

コンテナとの対話

startDockerContainer: コンテナを開始します。

logsDockerContainer: ポータルのランタイムのログを出力します。実行中のコンテナ(例: [Ctrl|Command] +C)を維持しながら、ログ追跡モードを終了できます。

dockerDeploy: プロジェクトのアーカイブファイルをワークスペースのbuild/docker/deployフォルダにコピーすることにより、プロジェクトをコンテナのdeployフォルダにデプロイします。 このコマンドは、ワークスペースのルートフォルダから実行して、すべてのプロジェクトをデプロイし、Docker設定(例: configs/commonおよびconfigs/dockerフォルダから)を全部コンテナにコピーすることもできます。

stopDockerContainer: コンテナを停止します。

removeDockerContainer: コンテナをDockerのシステムから削除します。

| **注:**コンテナの起動中に、次のエラーが発生する場合があります。|

次に、カスタムイメージを作成する方法を説明します。

カスタムのLiferay DXPイメージのビルド

コンテナの設定をイメージとしてビルドすることにより、保存することができます。カスタムのLiferay DXPイメージを作成するには、以下を実行します。

./gradlew buildDockerImage

Dockerfileがイメージをビルドするときにコンテナ用に作成されます。これを手動で行うには、以下を実行します。

./gradlew createDockerfile

ワークスペースのbuild/dockerフォルダ内にDockerfileが作成されます。Dockerfileの設定方法の詳細については、DockerのDockerfile reference documentationを参照してください。

これで、カスタムイメージが利用可能になります。docker image lsを実行して、可用性を確認します。

これで、Liferay WorkspaceでLiferayのDockerイメージを管理できるようになりました。

« ワークスペースの外にあるモジュールの検証Liferay Workspaceのアップデート »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています