ホームページ ウェブフロントエンド jsチュートリアル Docker と Encore を使用してバックエンド アプリケーションを DigitalOcean にデプロイする方法

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

Oct 24, 2024 am 03:59 AM

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptとWeb:コア機能とユースケース JavaScriptとWeb:コア機能とユースケース Apr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScript in Action:実際の例とプロジェクト JavaScript in Action:実際の例とプロジェクト Apr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンの理解:実装の詳細 JavaScriptエンジンの理解:実装の詳細 Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. JavaScript:開発環境とツール Python vs. JavaScript:開発環境とツール Apr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScript通訳者とコンパイラにおけるC/Cの役割 JavaScript通訳者とコンパイラにおけるC/Cの役割 Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーション Webサイトからアプリまで:JavaScriptの多様なアプリケーション Apr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

See all articles