JekyllベースのサイトをGitHub PagesからCloudflare Pagesに移行する
このチュートリアルでは、既存のJekyllを使用したGitHub Pagesサイト ↗をCloudflare Pagesに移行する方法を学びます。JekyllはGitHub Pagesで使用される最も人気のある静的サイトジェネレーターの1つであり、GitHub PagesサイトをCloudflare Pagesに移行するには、いくつかの短いステップを踏む必要があります。
このチュートリアルでは、以下の内容を案内します:
- GitHub Pagesで使用される必要な依存関係をプロジェクト設定に追加する。
- 既存のGitHubリポジトリに接続された新しいCloudflare Pagesサイトを作成する。
- Cloudflare Pages上でサイトをビルドしてデプロイする。
- (オプション)カスタムドメインを移行する。
ビルド時間を含め、このチュートリアルは15分未満で完了するはずです。
このチュートリアルは以下の前提を持っています:
- Jekyll ↗を使用した既存のGitHub Pagesサイトがあること。
- Rubyのコマンドラインツールを実行することにある程度の慣れがあり、
gemとbundleがインストールされていること。 add、commit、push、pullなどの基本的なGit操作を使用できること。- Cloudflare PagesのGet Startedガイドを読んでいること。
もしRubygems(gem)やBundler(bundle)がマシンにインストールされていない場合は、Rubygems ↗とBundler ↗のインストールガイドを参照してください。
既存のJekyllベースのリポジトリは、Cloudflare Pagesがビルドステップ中に依存関係を取得してインストールできるように、Gemfile(Rubyの依存関係設定ファイル)を指定する必要があります。
具体的には、Gemfileを作成し、GitHub Pages環境が前提とするすべての依存関係を含むgithub-pages gemをインストールする必要があります。
cd my-github-pages-repobundle init作成されたGemfileを開き、ファイルの最後に以下の行を追加します:
gem "github-pages", "~> 215", group: :jekyll_pluginsあなたのGemfileは以下のようになるはずです:
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
# gem "rails"gem "github-pages", "~> 215", group: :jekyll_pluginsbundle updateを実行すると、github-pages gemがインストールされ、解決された依存関係のバージョンを持つGemfile.lockファイルが作成されます。
bundle update# Bundlerは依存関係を取得する際に多くの出力を表示しますこれが成功裏に完了するはずです。そうでない場合は、上記のgithub-pagesの行を正確にコピーしたことを確認し、先頭に#を付けてコメントアウトしていないことを確認してください。
これらのファイルをリポジトリにコミットする必要がありますので、Cloudflare Pagesが次のステップで参照できるようにします:
git add Gemfile Gemfile.lockgit commit -m "deps: added Gemfiles"git push origin mainGitHub Pagesプロジェクトが依存関係を明示的に指定したので、Cloudflare Pagesの設定を開始できます。このプロセスは、Jekyllサイトをデプロイするのほぼ同じです。
サイトをPagesにデプロイするには:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- アカウントホームで、Workers & Pages > Create application > Pages > Connect to Gitを選択します。
- 作成した新しいGitHubリポジトリを選択し、Set up builds and deploymentsセクションで以下の情報を提供します:
| 設定オプション | 値 |
|---|---|
| プロダクションブランチ | main |
| ビルドコマンド | jekyll build |
| ビルドディレクトリ | _site |
サイトを設定したら、最初のデプロイを開始できます。Cloudflare Pagesがjekyll、プロジェクトの依存関係をインストールし、サイトをビルドしてデプロイするのを見ることができるはずです。
サイトをデプロイした後、*.pages.devのプロジェクト用のユニークなサブドメインが提供されます。Jekyllサイトに新しいコードをコミットするたびに、Cloudflare Pagesは自動的にプロジェクトを再ビルドしてデプロイします。また、新しいプルリクエストでプレビューのデプロイにアクセスできるようになり、変更が本番環境にデプロイされる前にサイトにどのように表示されるかをプレビューできます。
GitHub Pagesでカスタムドメイン ↗を使用している場合は、DNSレコードを新しいCloudflare Pagesデプロイメントを指すように更新する必要があります。これには、ドメインのDNSプロバイダーでCNAMEレコードを<your-pages-site>.pages.devにポイントするように更新する必要があります。<your-username>.github.ioを置き換えます。
この変更が反映されるまでにDNSキャッシュが期限切れになるまで時間がかかる場合がありますので、元々レコードを作成したときに設定したDNS TTL(生存時間)値に依存します。
詳細な手順のリストについては、Get started guideのカスタムドメインの追加セクションを参照してください。
- Cloudflare Workersを使用して、PagesサイトのHTTPレスポンスヘッダーをカスタマイズする方法を学びます。
- 壊れたデプロイメントをロールバックする方法を理解します。
- 訪問者が常に「正規の」カスタムドメインにリダイレクトされるようにリダイレクトを設定する方法を学びます。