デプロイメント環境の構築

デプロイメント環境の構築

あなたのコードを共有する準備が整うときが来るのです。 そのためには、環境を構築する必要があります。 企業の世界では、通常3つの環境があります。

  • 開発者:コードを迅速に修正および再デプロイできる、早期テスト用の環境。 デベロッパーやパワーユーザーはここでテストする。
  • ユーザー受け入れテスト(UAT):本番環境の構成をより厳密に反映する環境。 アプリケーションがほぼ完成したら、通常、より多くのユーザーをここでテストするように招待します。
  • 本番環境:本番環境のサイトが存在する環境。 デプロイメントは厳密に制御され、他の2つの環境でテストされたコードのみがデプロイされます。

Liferay Workspaceを使用すると、コンテナーベースであろうと従来型であろうと、デプロイ環境を簡単に生成できます。 構成を提供し、Gradleタスクを実行すると、配布可能なDockerコンテナまたはサーバーアーカイブを生成して、インストールすることができます。 ワークスペースには、アクションが発生するオプションのconfigsフォルダが含まれています。

Blade CLIを使用してワークスペースを作成した場合、configsフォルダは既に存在しています。 ワークスペースを手動で作成した場合は、ワークスペースディレクトリに次のフォルダ構造を作成します。

├── common
│   └── portal-setup-wizard.properties
├── dev
│   └── portal-ext.properties
├── docker
├── local
├── prod
└── uat
    └── portal-ext.properties

まだファイルには何も入れないでください。

デプロイメント環境の仕組み

configsフォルダは、特定のシナリオを定義します。

common:すべての環境に適用される構成が含まれています。

dev:開発環境の構成が含まれています。

docker:Docker構成が含まれています。

local:ワークスペースが存在するローカル環境の構成が含まれます。

prod:本番環境の構成が含まれています。

uat:ユーザー受け入れテスト環境の構成が含まれています。

構成ファイルを特定のフォルダに配置すると、その環境の構成が定義されます。 commondockerの場合、他のすべての設定はそれらを上書きします。 これは、環境がオーバーライドするための基本設定を提供できるようにするためです。 これで、いくつかの環境を構築する準備が整いました。

デプロイメント環境の構築

ご使用の環境で次のシナリオを想定します。

  • 開発者環境は開発者プロパティを使用する必要があります
  • ローカル環境はローカルデータベースを指します
  • 開発者およびUAT環境は、独自のデータベースを指します
  • すべての環境はセットアップウィザードをスキップします

そのシナリオを構成する方法は次のとおりです。

  1. commonフォルダで、次のプロパティをportal-setup-wizard.propertiesに追加します

    setup.wizard.enabled=false
    
  2. localフォルダで、portal-ext.propertiesにローカルデータベースを構成します。

    #
    # MySQL
    #
    jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
    jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    jdbc.default.username=root
    jdbc.default.password=password
    
  3. devフォルダで、開発者プロパティを有効にし、portal-ext.propertiesの開発サーバーでデータベースを構成します。

    include-and-override=portal-developer.properties
    
    #
    # MySQL
    #
    jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
    jdbc.default.url=jdbc:mysql://devel.server/lportaldev?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    jdbc.default.username=root
    jdbc.default.password=password
    
  4. uatフォルダで、portal-ext.propertiesのUAT環境でデータベースを構成します。

    #
    # MySQL
    #
    jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
    jdbc.default.url=jdbc:mysql://uat.server/lportaluat?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    jdbc.default.username=root
    jdbc.default.password=password
    

これで、環境を生成して配布する準備が整いました。

デプロイメント環境の生成

これで、Dockerコンテナやバンドルを生成して、ローカルで実行したり、サーバーに配布したりすることができます。

Dockerコンテナの生成

Dockerコンテナを生成すると、すべての環境に対する設定が含まれています。 どの環境を使用するかは、 liferay.workspace.environment 変数で選択します。

デプロイ環境の設定からDockerコンテナを生成するには、次のコマンドを使用します。

./gradlew buildDockerImage

Dockerコンテナがビルドされたら、このコマンドで上記のdev設定を使ってコンテナを起動します。

./gradlew startDockerContainer -Pliferay.workspace.environment=dev

コンフィギュレーションはLiferayコンテナの中で生成され、変数が使用するコンフィギュレーションを決定します。

すべての設定は、Dockerコンテナ内で生成されます。

バンドルの生成

これは、initBundleまたはdistBundle Gradleタスクのいずれかを使用して実行されます。

  1. 最初に環境をテストする必要があります。 ローカルでビルドするには、initBundleコマンドを使用します。 たとえば、dev環境を構築するには、次のように実行します。

    ./gradlew initBundle -Pliferay.workspace.environment=dev
    

    これにより、ワークスペース内のすべてのプロジェクトがコンパイルされ、bundlesフォルダ内のランタイムにデプロイされます。 また、指定した構成も提供されます(この例では、dev環境の構成)。 bundlesフォルダ内のportal-ext.propertiesファイルを調べると、dev構成に提供したものと一致していることがわかります。

  2. 環境が整いテストが良好な場合は、すべてのアプリケーションと構成を含む配布可能なバンドルを構築できます。 次のコマンドを実行します。

    ./gradlew distBundleTar -Pliferay.workspace.environment=dev
    

    これにより、gzip圧縮されたtarファイルがbuildフォルダにビルドされます。 このアーカイブを取得して、他のLiferayバンドルと同じように開発サーバーにインストールできます。ただし、このバンドルは希望どおりに完全に構成されており、すべてのアプリケーションが既にインストールされている点が異なります。

note

.zipアーカイブが必要な場合は、distBundleZipコマンドを使用できます。

上記の手順に従って、各環境をテストおよび構築します。

また、すべての環境を一度に構築することも可能です。 これには2つのステップしかありません。

  1. Workspace の gradle.properties ファイルの liferay.workspace.bundle.dist.include.metadata のプロパティを true に設定します。

    liferay.workspace.bundle.dist.include.metadata=true
    
  2. ターゲットを呼び出して、すべてのバンドルをビルドします。 すべてのバンドルを gzip された tar ファイルにビルドするには、次のようにします。

    ./gradlew distBundleTarAll
    

    すべてのバンドルファイルを .zip ファイルにビルドするには

    ./gradlew distBundleZipAll