Lando で Drupal 開発を加速する方法

公開: 2023-01-03

最近では、DDev や DockSal など、多くの開発環境オプションが利用可能ですが、いくつかの理由から、Drupal のセットアップには通常 Lando をお勧めします。

Lando は操作が簡単で、移植性があり、高速です。 Lando は何でも、どこでも実行できます。 これは最も親しみやすい Devops ツールであり、何年にもわたって人気を集めています。 Lando を簡単に説明すると、環境セットアップが自動化されているため、開発が容易になります。

Drupal を使用した Lando のセットアップ

この記事では、Lando、そのセットアップ、アーキテクチャ、Drupal で Lando レシピを使用する方法、Lando の構成について説明します。 それでは、始めましょう!

ランドとは?

Lando は、Docker 上に構築された無料のオープン ソース ローカル開発環境 DevOps ツールです。 OSX、Windows、および Linux のローカル環境と互換性があります。 Lando を使えば、さまざまな種類のサービスやツールを簡単に準備できます。 さらに、Lando では、Lando で作業している他のプロジェクトに影響を与えることなく、プロジェクトごとに異なるサービスを設定できます。

開発者は、実行する必要があるアプリケーション構成だけでなく、サービスとツールのコードベースで構成をセットアップすることも非常に簡単になります。 セットアップが完了すると、開発者はリポジトリに入って Lando を実行し、開発環境の一貫性を損なうことなく、完全に分離してプロジェクトの作業を開始できます。

Lando はどのように機能し、なぜ使用する必要があるのですか? (ランドレシピと Drupal)

Lando とは何か、Drupal との互換性については既にご存じでしょう。 さて、Docker に精通している方もいらっしゃるかもしれませんが、Lando と Docker がどれほど似ているのか疑問に思われるかもしれません。 Lando のセットアップ構成は Docker 構成に似ており、分離された開発環境は Docker コンテナーの環境に似ています。

しかし、このような類似性から疑問が生じます。Docker がインストールされている場合、Lando のポイントは何ですか? 理由は次のとおりです。

  • Lando では、事前定義されたレシピを利用して、Docker コンテナーを使用するより組織化されたプロセスを使用できます。
  • Docker コンテナー環境が Lando レシピと互換性がない場合、Lando サービスを定義することでコンテナーを簡単に定義できます。 これは、docker exec コマンドを入力したり、Dockerfile を設定したりしなくても実行できます。
  • ローカル開発ネットワークを利用しながら、Lando レシピの代わりに独自のカスタム Docker Compose ファイルを使用できます。
  • さらに、コンテナごとに SSL 処理を使用したり、サービスのプロキシとカスタム URL を設定したり、簡単なビルドおよび実行手順を使用したりできます。

Drupal 9 のシステム要件と Lando のインストールについてのヘルプが必要な場合は、こちらのブログを参照してください。

Lando レシピの設定

レシピは、サービス、プロキシ、およびツールの組み合わせであり、特定のユース ケースの正常な開始状態のデフォルトとして設計されています。 Lando のレシピは Lando の最高の抽象化であり、サービス、イベント、およびツールの一般的な組み合わせが含まれています。

サービスは簡素化されていますが、高度に構成可能な Docker コンテナーです。 PHP 拡張機能のインストールや yarn install の実行などのビルド手順を実行できます。 ツールを使用すると、ユーザーは起動時に任意のコマンド、コマンドの組み合わせ、またはサービスの組み合わせを実行できます。 使い方は非常にシンプルでありながら、信じられないほど便利です。

Config を使用すると、レシピが提供するさらに重要なものを設定できます。 Lando を使用すると、要件に応じて構成および変更を行うことができます。

理解を深めるために、Lando のサービスとツールについて詳しく見ていきましょう。

ランドサービス

Lando サービスは、簡素化され、高度に構成可能な Docker コンテナーです。 ビルド ステップを実行できる必要があり、低レベルにオーバーライドできます。 サービスは、自動ネットワークおよびセキュリティ機能を取得します。

最も有用なサービスのいくつかは次のとおりです。

  • エラスティックサーチ/ソルル
  • メイホッグ
  • ノード
  • PhpMyadmin
  • レディス
  • Memcache
  • ワニス
ランドサービス

メールゴグ

サービス - ビルド手順

PHP 拡張機能やノード モジュールなどの追加のサーバー上の依存関係が必要な場合は、ビルド ステップのように思えます。

主なビルド手順は次の 4 つです。

  • 「ビルド」 : サービスが起動する前に「あなた」として実行されます
  • 「Build_as_root」 : root として実行され、サービスが起動する前に実行されます
  • 「実行」 : 「あなた」として実行され、サービスの起動後に実行されます
  • 「run_as_root」 : root として実行され、サービスの起動後に実行されます
アプリサーバー

4 つの主要なステップをどのように実行できますか?

  • build を使用して、アプリケーションを起動する前に必要なアプリケーションの依存関係をインストールします
  • build_as_root を使用して、アプリケーションに必要な低レベルのサーバー パッケージをインストールします
  • run を使用して、アプリケーションの依存関係をインストールするか、最初にアプリケーションを起動する必要があるビルド ステップを実行します
  • その他の開始後のルート レベルのワンタイム セットアップ コマンドには、run_as_root を使用します。

イベント

イベントにより、ユーザーは Lando ランタイムの特定の部分の前または後に任意のコマンドを実行できます。 簡単に言えば、何かが起こる前後に、頻繁に、または常に実行するコマンドやタスクを自動化できます。 Lando とアプリのランタイム イベントは、プレイベントまたはポスト イベントにフックできます。

すべてのツール コマンドのプレ イベントとポスト イベントにフックすることもできます。

イベント

Lando アプリ用のツールの追加

ツールを使用すると、任意のサービスで任意のコマンドを実行できます。 すべての Lando Drupal レシピには、便利な開発ユーティリティが付属しています。 Lando ヘルプ ページに表示されるコマンドは次のとおりです。

  • ランドphp
  • ランド mysql
  • Lando db-import
  • Lando db-export

ここでは、ツールを使用してカスタム コマンドを作成し、これらのコマンドが内部で実行する内容とコンテナで実行する内容を定義できます。 これらは、特定のサービスを開発者に直接公開し、プロセスを自動化するのにも役立ちます。

ツール - lando drupal-check

このコマンドを実行するたびに、アプリ サーバー サービスに入り、コマンドを実行して、コードが Drupal 標準に従っているかどうかを確認します。 そうでない場合は、適切なエラー メッセージが表示されます。

ツーリング

ツール - lando xdebug-on

このコマンドは、デバッグ用にアプリ サーバーで xdebug-on を設定して有効にします。

Xdebug

ソース: https://docs.lando.dev/core/v3/

最終的な考え

Drupal Web サイト用に Lando をセットアップしたら、カスタム サービスとレシピを作成し、サービスに特定の Docker イメージを使用できます。 Lando を使用すると、さまざまなサーバー構成や CI/CD と統合できます。 さらに、テストを自動化して、Drupal で Lando レシピを進める方法を学ぶこともできます。

Lando と Drupal はうまく融合します。 また、Docker と docker compose に既に精通している場合は、Drupal Web サイト用に Lando をセットアップし、そのレシピを使用して、イベント、サービス、およびツールを組み合わせることは非常に簡単です。 Drupal Web サイトの Lando のセットアップと開発の全プロセスに組み込まれています。

この記事は役に立ちましたか? コピー、埋め込み、または共有するための、この記事の非常に小さな URL を次に示します。

bit.ly/3WyZNoB

クリックして URL をクリップボードにコピーします