生成AIアプリドキュメント
Dokploy

GitHub連携でデプロイ

GitHubリポジトリと連携してDokployにアプリケーションをデプロイする方法

GitHubリポジトリと連携して、Dokployにアプリケーションをデプロイする方法を説明します。

前提条件

  • GitHub EMU環境のOrganization内にリポジトリがあること
  • リポジトリにDockerfileまたはデプロイ可能なコードがあること

手順

1. GitHub Appの作成(初回のみ)

初めてGitHub連携を使用する場合は、まずGitHub Appを作成する必要があります。

  1. Dokployにアクセス
  2. 左サイドバーから「Git」を選択
  3. 「GitHub」を選択
  4. 「Organization?」トグルをオンにする
  5. Organization名を入力(例: NihonKohdenEnterprise
  6. 「Create GitHub App」ボタンをクリック

GitHub App作成ダイアログ

  1. GitHubの画面に遷移するので、「Install & Authorize」をクリック
  2. 連携するリポジトリを選択して保存

この設定は一度行えば、以降は連携済みリポジトリから選択するだけです。複数のOrganizationを連携する場合は、それぞれでGitHub Appを作成してください。

初回設定時に選択しなかったリポジトリを後から追加する場合は、Git Providers画面で作成済みのGitHub Appの外部リンクボタン(赤枠)をクリックし、GitHubの「Configure」ボタン→「Select repositories」から追加してください。

Git Providers画面

2. プロジェクトの作成

  1. 「Projects」から「Create Project」をクリック
  2. プロジェクト名を入力して作成

3. アプリケーションの作成

  1. 作成したプロジェクト内で「Create Service」→「Application」を選択
  2. アプリケーション名を入力
  3. 「Provider」で「GitHub」タブを選択
  4. 「Github Account」で作成済みのGitHub Appを選択
  5. 「Repository」で連携済みのリポジトリを選択
  6. 「Branch」でデプロイするブランチを選択
  7. 「Save」をクリック

Provider設定画面

4. ビルド設定

Build Type設定

デフォルトは「Nixpacks」が選択されていますが、Dockerfileを使用することを推奨します。

Dockerfileを使用する場合(推奨)

  1. 「Build Type」で「Dockerfile」を選択
  2. 「Docker File」に Dockerfile と入力

Dockerfileがルート以外にある場合や、ファイル名が異なる場合は、そのパスを入力してください。

例: docker/Dockerfile.prod

Dockerfileがない場合は、GitHub Copilotに作成を依頼してください。

プロジェクトのルートで「このプロジェクト用のDockerfileを作成して」と依頼すれば、適切なDockerfileを生成してくれます。

Railpackを使用する場合

Railpackは、Dockerfileなしでアプリケーションを自動的にビルドできる機能です。

  1. 「Build Type」で「Railpack」を選択
  2. Railpackがプロジェクトを自動検出してビルド設定を行います

Railpackは便利ですが、アプリの構成によってはうまくビルドできない場合があります。

ビルドに失敗する場合はDockerfileの使用を検討してください。

5. ドメイン設定

  1. 「Domains」タブを開く
  2. 「Add Domain」ボタンをクリック
  3. 「Generate random subdomain」ボタン(さいころアイコン、赤枠)をクリック
  4. 「Container Port」にポート番号を設定(ローカル開発時にブラウザからアクセスしているポート。例: Next.jsなら 3000、Streamlitなら 8501
  5. 「Create」をクリック

ドメイン設定ダイアログ

使用しているポート番号がわからない場合は、GitHub Copilotに聞いてみてください。

任意のサブドメインを指定することもできますが、他のアプリと重複すると動作がおかしくなります。特別な理由がない限り、自動生成されたドメインを使用してください。

6. 環境変数の設定(必要な場合)

ローカル開発時に .env ファイルに記載している内容をここに設定します。

  1. 「Environment」タブを開く
  2. 右上の目隠しボタン(赤枠)をクリックして編集可能にする
  3. 必要な環境変数を追加(例: LITELLM_API_KEY=sk-xxxx
  4. 「Save」をクリック

環境変数設定画面

環境変数は、アプリケーションの設定値を外部から渡す仕組みです。コードを変更せずに環境ごと(ローカル開発・本番など)に異なる値を設定でき、APIキーなどの機密情報をコードに直接書かずに済むというメリットもあります。

7. デプロイ

  1. 「General」タブを開く
  2. 「Deploy」ボタン(赤枠)をクリック
  3. ビルドログを確認し、デプロイが完了するまで待機

デプロイボタン

8. アプリケーションへのアクセス

デプロイ完了後、「Domains」タブを開き、表示されているURLをクリックするとアプリケーションにアクセスできます。

Domainsタブ

初回デプロイ直後はSSL証明書の取得に数分かかる場合があります。アクセスできない場合は少し待ってから再度お試しください。

デプロイ後、グローバル認証が正しく動作しているか確認するために、InPrivateウィンドウ(Ctrl+Shift+N)でアプリのURLにアクセスしてみてください。以下のようなサインイン画面が表示されれば、認証が正しく設定されています。

Entraサインイン画面

自動デプロイ

GitHub連携を設定すると、対象ブランチへのプッシュ時に自動デプロイが実行されます。この設定は基本的に自動で有効になります。

自動デプロイを無効にしたい場合は、「General」タブの「Auto Deploy」をオフにしてください。

トラブルシューティング

ビルドが失敗する

  • 「Deployments」タブを開き、「View」ボタンをクリックしてビルドログを確認
  • エラーメッセージをGitHub Copilotにコピペして原因と解決方法を聞く
  • Dockerfileの構文エラーがないか確認
  • 必要な環境変数が設定されているか確認

アプリケーションにアクセスできない・動作がおかしい

  • 「Logs」タブでアプリケーションログを確認
  • エラーメッセージをGitHub Copilotにコピペして原因と解決方法を聞く
  • ポート番号が正しく設定されているか確認
  • アプリケーションが指定したポートでリッスンしているか確認

Logsタブ

On this page