ReactアプリケーションをDigitalOceanアプリプラットフォームにデプロイする方法
著者は、 Creative Commons を選択して、 Write forDOnationsプログラムの一環として寄付を受け取りました。
注:このチュートリアルでは、ReactとAppPlatformを使用して静的アセットとサイトをデプロイする方法を示します。 動的なバックエンドコードを使用してReactアプリケーションをデプロイする場合は、公式ドキュメントの AppPlatformReactサンプルを確認してください。
序章
DigitalOceanのAppPlatform は、 Platform as a Service(PaaS)製品であり、ソースリポジトリからアプリケーションを構成およびデプロイできます。 アプリを構成した後、DigitalOceanは変更のたびにアプリケーションを構築してデプロイし、最小限の構成で完全なWebサーバーとデプロイパイプラインのメリットを提供します。 これは、 React アプリケーションをすばやく効率的にデプロイする方法です。また、Reactを使用してバックエンドのないサイトを構築している場合は、AppPlatformの無料利用枠を使用できます。
このチュートリアルでは、無料のスターター層を使用して、ReactアプリケーションをDigitalOceanAppPlatformにデプロイします。 Create React App を使用してアプリケーションをビルドし、コードを GitHub リポジトリにプッシュしてから、アプリケーションをDigitalOceanアプリとして構成します。 アプリをソースコードに接続し、プロジェクトを静的ファイルのセットとしてデプロイします。
このチュートリアルを終了すると、GitHubリポジトリのメインブランチにプッシュするたびに自動的にデプロイされるようにReactアプリケーションを構成できるようになります。
前提条件
-
ローカルマシンでは、Node.jsを実行する開発環境が必要になります。 このチュートリアルは、Node.jsバージョン10.22.0およびnpmバージョン6.14.6でテストされました。 これをmacOSまたはUbuntu20.04にインストールするには、 Node.jsをインストールし、macOSまたはNodeSourcePPAを使用してAptでNode.jsをインストールする方法の手順に従います。 ] Ubuntu20.04にNode.jsをインストールする方法のセクション。
-
Gitがローカルマシンにインストールされています。 チュートリアルオープンソースへの貢献:Git入門に従って、コンピューターにGitをインストールしてセットアップすることができます。
-
DigitalOceanアカウント。
-
アカウントの作成ページに移動して作成できるGitHubのアカウント。
-
また、JavaScript、HTML、およびCSSの基本的な知識も必要です。これは、HTMLシリーズを使用してWebサイトを構築する方法、CSSシリーズを使用してWebサイトを構築する方法にあります。 、およびJavaScriptでコーディングする方法。
ステップ1—Reactプロジェクトを作成する
このステップでは、Create React Appを使用してReactアプリケーションを作成し、そのデプロイ可能なバージョンをビルドします。
開始するには、ローカルマシンでCreateReactAppを使用して新しいアプリケーションを作成します。 ターミナルで、コマンドを実行してdigital-ocean-appというアプリケーションをビルドします。
- npx create-react-app digital-ocean-app
The npx
コマンドは、Nodeパッケージをマシンにダウンロードせずに実行します。 The create-react-app
スクリプトはすべての依存関係をインストールし、ベースプロジェクトを構築します digital-ocean-app
ディレクトリ。 Create React Appの詳細については、チュートリアル Create ReactAppを使用してReactプロジェクトをセットアップする方法を確認してください。
コードは依存関係をダウンロードし、ベースプロジェクトを作成します。 完了するまでに数分かかる場合があります。 完了すると、成功メッセージが表示されます。 代わりにyarnを使用すると、バージョンが若干異なる場合があります npm
:
OutputSuccess! Created digital-ocean-app at your_file_path/digital-ocean-app
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd digital-ocean-app
npm start
Happy hacking!
ベースプロジェクトができたので、それをローカルで実行して、プロジェクトがサーバー上でどのように表示されるかをテストできるようにします。 まず、ディレクトリに移動します。
- cd digital-ocean-app
を使用してプロジェクトを実行します npm start
脚本:
- npm start
コマンドを実行すると、ローカル開発サーバーのURLを含む出力が表示されます。
OutputCompiled successfully!
You can now view digital-ocean-app in the browser.
Local: http://localhost:3000
On Your Network: http://192.168.1.110:3000
Note that the development build is not optimized.
To create a production build, use npm build.
ブラウザを開いてhttp:// localhost:3000 にアクセスすると、プロジェクトが見つかります。
いずれかを入力してプロジェクトを停止します CTRL+C
また ⌘+C
ターミナルで。
動作するReactアプリケーションができたので、コードをGitHubリポジトリにプッシュできます。
ステップ2—コードをGitHubにプッシュする
アプリをデプロイするために、AppPlatformはホストされているコードリポジトリからソースコードを取得します。 このステップでは、ReactアプリコードをGitHubリポジトリにプッシュして、AppPlatformが後でアクセスできるようにします。
GitHubアカウントにログインします。 ログイン後、 digital-ocean-appという名前の新しいリポジトリを作成します。 リポジトリをプライベートまたはパブリックにすることができます。
Create React Appは、プロジェクトをgitで自動的に初期化するため、コードをGitHubに直接プッシュするように設定できます。 まず、次のコマンドで使用するリポジトリを追加します。
- git remote add origin https://github.com/your_name/digital-ocean-app.git
次に、にプッシュすることを宣言します main
次のブランチ:
- git branch -M main
最後に、コードをリポジトリにプッシュします。
- git push -u origin main
コードをプッシュするように求められたら、GitHubのクレデンシャルを入力します。
コードをプッシュすると、成功メッセージが表示されます。 メッセージは少し異なります。
OutputCounting objects: 22, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (22/22), done.
Writing objects: 100% (22/22), 187.50 KiB | 6.94 MiB/s, done.
Total 22 (delta 0), reused 0 (delta 0)
To github.com:your_name/digital-ocean-app.git
4011c66..647d2e1 main -> main
これで、コードがGitHubリポジトリにコピーされました。
このステップでは、プロジェクトをGitHubにプッシュして、DigitalOceanアプリを使用してプロジェクトにアクセスできるようにします。 次に、プロジェクトを使用して新しいDigitalOceanアプリを作成し、自動展開を設定します。
ステップ3—DigitalOceanアプリプラットフォームへのデプロイ
このステップでは、ReactアプリケーションをDigitalOceanAppPlatformにデプロイします。 GitHubリポジトリをDigitalOceanに接続し、ビルドするプロジェクトを構成して、最初のプロジェクトをビルドします。 プロジェクトが稼働した後、変更のたびに新しいビルドと更新がトリガーされます。
このステップを完了すると、DigitalOceanで継続的デリバリーを使用してアプリケーションをデプロイできるようになります。
まず、DigitalOceanアカウントにログインし、 Create ボタンを押してから、Appsを選択します。
次に、GitHubリポジトリをリンクするように求められます。 まだ接続していない場合は、ユーザー名とパスワードを使用してログインし、DigitalOceanにリポジトリへのアクセスを許可する必要があります。
アカウントをリンクしたら、GitHub認証画面で接続するリポジトリを選択します。 この場合、 digital-ocean-app リポジトリを使用していますが、必要に応じてさらに多くのリポジトリを接続できます。
リポジトリを選択した後、DigitalOceanインターフェースに再接続します。 リポジトリのリストからdigital-ocean-appを選択し、Nextを押します。 これにより、アプリがGitHubリポジトリに直接接続されます。
リポジトリを選択したので、DigitalOceanアプリを構成する必要があります。 この例では、RegionフィールドでNewYork を選択することにより、サーバーは北米に拠点を置き、展開ブランチはmainになります。 アプリの場合、物理的な場所に最も近い地域を選択します。
このチュートリアルでは、自動デプロイコードの変更を確認しています。 これにより、コードを更新するたびにアプリが自動的に再構築されます。
次へを押して、アプリの設定画面に移動します。
次に、実行するアプリケーションのタイプを選択します。 Reactは静的アセットを構築するため、TypeフィールドのドロップダウンメニューからStaticSiteを選択します。
注: Create React Appは、 Gatsby のような静的サイトジェネレーターではありませんが、サーバーがなどのサーバー側コードを実行する必要がないため、静的アセットを使用しています。 ]RubyまたはPHP。 アプリはNodeを使用してインストールとビルドの手順を実行しますが、無料利用枠ではアプリケーションコードを実行しません。
カスタムビルドスクリプトを使用するオプションもあります。 ただし、この場合、デフォルトのままにすることができます npm run build
指図。 品質保証(QA)または実稼働環境用に別のビルドスクリプトがある場合は、カスタムビルドスクリプトを作成することをお勧めします。
次へを押して、ファイナライズして起動ページに移動します。
ここで料金プランを選択できます。 無料のStarter層は静的サイト用に作成されているため、次のいずれかを選択します。
Launch Starter App ボタンを押すと、DigitalOceanがアプリケーションの構築を開始します。
アプリは実行されます npm ci
と npm build
リポジトリ内のスクリプト。 これにより、すべての依存関係がダウンロードされ、 build
すべてのJavaScript、HTMLファイル、およびその他のアセットのコンパイルおよび縮小バージョンを含むディレクトリ。 でカスタムスクリプトを作成することもできます package.json
AppPlatformのアプリケーションのComponentsタブにあるCommandsを更新します。
ビルドの実行には数分かかりますが、ビルドが完了すると、成功メッセージと新しいサイトへのリンクが表示されます。 リンクには一意の名前が付けられ、わずかに異なります。
Live App を押して、ブラウザでプロジェクトにアクセスします。 ローカルでテストしたプロジェクトと同じですが、これは安全なURLを使用してWeb上で公開されます。
プロジェクトが構成されたので、リンクされたリポジトリに変更を加えるたびに、新しいビルドを実行します。 この場合、 main ブランチに変更をプッシュすると、DigitalOceanは自動的に新しいデプロイメントを実行します。 ログインする必要はありません。 変更をプッシュするとすぐに実行されます。
このステップでは、AppPlatformで新しいDigitalOceanアプリを作成しました。 GitHubアカウントを接続し、mainブランチを構築するようにアプリを構成しました。 アプリケーションを構成した後、変更のたびにアプリが新しいビルドをデプロイすることを学びました。
結論
DigitalOceanのAppPlatformは、アプリケーションをデプロイするためのクイックツールを提供します。 小さな初期設定で、アプリは変更のたびに自動的にデプロイされます。 これをReactと組み合わせて使用すると、Webアプリケーションをすばやく起動して実行できます。
このようなプロジェクトで考えられる次のステップは、アプリのドメイン名を変更することです。 これを行うには、 AppPlatformの公式ドキュメントをご覧ください。