Docker と Encore を使用してバックエンド アプリケーションを DigitalOcean にデプロイする方法

Barbara Streisand
リリース: 2024-10-24 03:59:02
オリジナル
596 人が閲覧しました

How to deploy a backend application to DigitalOcean using Docker and Encore

?このガイドでは、Encore のオープン ソース CLI の一部である新しい encore ビルド コマンドを使用して、Encore アプリケーションを DigitalOcean にデプロイする方法を説明します。

これは、Encore のクラウド プラットフォームによって提供される自動化よりも手動のデプロイメントを好む場合に便利です。

手動でデプロイする場合でも、Encore はアプリを構築および構成するためのツールを提供することでプロセスを簡素化します。⚡️

次に、Docker と encore ビルドを使用して、Encore アプリを DigitalOcean のアプリ プラットフォームにデプロイする方法を見てみましょう。

前提条件

  • DigitalOcean アカウント: DigitalOcean アカウントをお持ちであることを確認してください。まだの場合は、ここからサインアップできます。
  • Docker がインストールされました: Docker がローカル マシンにインストールされていることを確認します。 Docker Web サイトからダウンロードできます。
  • Encore CLI: Encore CLI をインストールします。
    • macOS: brew install encoredev/tap/encore
    • Linux:curl -L https://encore.dev/install.sh |バッシュ
    • Windows: iwr https://encore.dev/install.ps1 |アイエックス
  • DigitalOcean CLI (オプション): 柔軟性と自動化を高めるために DigitalOcean CLI をインストールできますが、このチュートリアルでは必要ありません。

ステップ 1: Encore アプリを作成する

  • 新しい Encore アプリを作成する:

    • まだ作成していない場合は、Encore CLI を使用して新しい Encore アプリを作成します。
    • 次のコマンドを使用して新しいアプリを作成できます。
    encore app create myapp
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    • Hello World テンプレートを選択します。
    • プロンプトに従ってアプリを作成します。
  • Docker イメージをビルドします:

    • Encore アプリをビルドして、デプロイメント用の Docker イメージを生成します。
    encore build docker myapp  
    
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

ステップ 2: Docker イメージをコンテナー レジストリにプッシュする

Docker イメージを DigitalOcean にデプロイするには、それをコンテナー レジストリにプッシュする必要があります。 DigitalOcean は
をサポートします 独自のコンテナ レジストリを使用できますが、DockerHub または他のレジストリを使用することもできます。画像を DigitalOcean のレジストリにプッシュする方法は次のとおりです:

  • DigitalOcean コンテナー レジストリを作成します:

    • DigitalOcean コントロール パネルに移動し、新しいコンテナー レジストリを作成します。
    • 指示に従ってセットアップしてください。
  • DigitalOcean のレジストリにログインします:

    DigitalOcean が提供するログイン コマンドを使用します。このコマンドは次のようになります:

   doctl registry login
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これには DigitalOcean CLI が必要になります。これは DigitalOcean CLI ドキュメントからインストールできます。

  • Docker イメージにタグを付けます: レジストリの URL と一致するようにイメージにタグを付けます。
encore app create myapp
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • Docker イメージをレジストリにプッシュします:
encore build docker myapp  
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ステップ 3: Docker イメージを DigitalOcean アプリ プラットフォームにデプロイする

  • アプリ プラットフォームに移動します:
    DigitalOcean のアプリ プラットフォームに移動します。

  • 新しいアプリを作成する:

    • 「アプリの作成」をクリックします。
    • 「DigitalOcean Container Registry」 オプションを選択します。
  • Docker イメージ ソースを選択します:

    • 先ほどプッシュした画像を選択します。
  • アプリ設定を構成します:

    • スケーリング オプションのセットアップ: コンテナーの数、CPU、メモリの設定を構成します。
    • 環境変数: アプリケーションに必要な環境変数を追加します。
    • リージョンを選択してください: パフォーマンスを向上させるために、ユーザーに近いリージョンを選択してください。
  • アプリをデプロイする:

    • 「次へ」 をクリックし、設定を確認して、「リソースの作成」 をクリックします。
    • DigitalOcean はインフラストラクチャのプロビジョニング、Docker イメージの取得、アプリケーションの起動を処理します。

ステップ 4: アプリの監視と管理

  • アプリケーションにアクセスします:
    • デプロイ後、アプリケーションにアクセスするためのパブリック URL を取得します。
    • アプリをテストして、期待どおりに実行されていることを確認します。
   doctl registry login
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • ログとメトリクスの表示:

    • アプリ プラットフォームの 「ランタイム ログ」 タブに移動してログを表示します
    • パフォーマンス指標を表示するには、「インサイト」 タブに移動します。
  • スケーリングと展開設定の管理:

    • スケーリング設定、デプロイメント領域、環境変数などのアプリ構成を変更できます。

ステップ 5: アプリにデータベースを追加する

DigitalOcean のアプリ プラットフォームは管理されたデータベースを提供し、アプリにデータベースを簡単に追加できます。アプリの管理データベースを設定する方法は次のとおりです:

  • DigitalOcean コントロール パネルに移動します:

    • DigitalOcean コントロール パネルに移動します。
    • 左側のサイドバーで 「データベース」 をクリックします。
  • 新しいデータベース クラスターの作成:

    • 「データベース クラスターの作成」 をクリックします。
    • PostgreSQL を選択します
    • データベース バージョンデータ センター リージョン、および クラスター構成 (ニーズに基づいた開発設定または運用設定など) を選択します。
    • データベースに名前を付け、必要に応じて他の設定を構成し、「データベース クラスターの作成」 をクリックします。
  • データベース設定を構成します:

    • データベースが作成されたら、データベース ダッシュボードの 「接続の詳細」 タブに移動します。
    • 接続文字列 または個別の設定 (ホスト、ポート、ユーザー名、パスワード、データベース名) をコピーします。アプリをデータベースに接続するには、これらの詳細が必要になります。
    • CA 証明書をダウンロードします
  • データベースを作成する

    • DigitalOcean が提供する接続文字列を使用してデータベースに接続します。
encore app create myapp
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • データベースを作成する
encore build docker myapp  
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • Encore アプリでデータベースを宣言します:
    • Encore アプリのコードベースを開きます。
    • mydb データベースをアプリに追加します (Encore データベースのドキュメント)
   doctl registry login
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • Encore インフラストラクチャ構成を作成する
    • Encore アプリのルートに infra.config.json という名前のファイルを作成します。
    • CA 証明書 と接続の詳細をファイルに追加します。
   docker tag myapp registry.digitalocean.com/YOUR_REGISTRY_NAME/myapp:latest
ログイン後にコピー
  • 環境変数の設定 (オプション):

    • DigitalOcean アプリ プラットフォームのダッシュボードに移動します。
    • アプリを選択します。
    • 「設定」 セクションで、「アプリレベルの環境変数」 に移動します。
    • データベースのパスワードを DB_PASSWORD という暗号化された環境変数として追加します。
  • Docker イメージをビルドしてプッシュします:

    • 更新された構成を使用して Docker イメージをビルドします。
encore app create myapp
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • Docker イメージにタグを付けて、DigitalOcean コンテナー レジストリにプッシュします。
encore build docker myapp  
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • データベース接続をテストします:
    • DigitalOcean にアプリを再デプロイして、変更を適用します。
    • API を呼び出してデータベース接続をテストする
   doctl registry login
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

トラブルシューティングのヒント

  • デプロイメントの失敗: ビルド ログにエラーがないか確認してください。 Docker イメージが正しくタグ付けされ、レジストリにプッシュされていることを確認してください。
  • アプリにアクセスできません: Dockerfile とアプリ プラットフォームの構成で正しいポートが公開されていることを確認してください。
  • データベース接続の問題: データベース接続の詳細が正しく、アプリからデータベースにアクセスできることを確認してください。

結論

それだけです! Docker を使用して、Encore アプリを DigitalOcean のアプリ プラットフォームに正常にデプロイしました。?

DigitalOcean ダッシュボードを通じて、アプリをスケーリングし、そのパフォーマンスを監視し、簡単に管理できるようになりました。

?自分で試してみてください

  • これらのチュートリアルで、Encore を使用したアプリの構築について学習します。
  • これらのオープンソース アプリ テンプレートを使用して何を構築するかについてのインスピレーションを見つけてください。

まとめ

  • ⭐️ GitHub で Encore を主演してプロジェクトをサポートしてください。
  • ?質問がある場合、または自分の成果を共有したい場合は、Discord の Encore コミュニティの開発者ハングアウトに参加してください。

以上がDocker と Encore を使用してバックエンド アプリケーションを DigitalOcean にデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!