GitHub pages のサイトに Google Domains で取得したカスタムドメイン(subdomain)を設定する
March 21, 2021
先日、GitHub Pages を利用して公開した下記のサイトにカスタムドメインを設定する際に少しわかりにくかったので記載します。
https://jupyterbook.hnishi.com/intro.html
GitHub 側の設定
公式の手順は下記に記載があります。
GitHub Pages サイトのカスタムドメインを管理する - GitHub Docs
公開したいレポジトリの設定で、下記のように設定したいドメインを入力しておく。
(今回の場合、jupyterbook.hnishi.com)
このとき以下のようなメッセージが出るが、まだ登録するカスタムドメインが DNS サーバーに反映されていないだけなので気にしなくて良い。
Domain’s DNS record could not be retrieved. For more information, see https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/.
Google Domains 側の設定
基本的には以下のブログで紹介されている手順で問題ないです。
参考: GitHub Pages に カスタムドメイン を 設定 ( Google Domains, VuePress ) - BEACHSIDE BLOG
左側のナビゲーションバーで DNS を選択します。
Name server はデフォルトの Google Domains name servers を使います。
Custom resource records で CNAME を下記のように設定します。
(今回の場合は、jupyterbook —> hnishi.github.io.)
以上で設定は完了です。
私がやったときは、反映までに 6 時間程度 (1 晩) かかりました。
正しく反映されると下記のように dig できます。
$ dig jupyterbook.hnishi.com +nostats +nocomments +nocmd; <<>> DiG 9.10.6 <<>> jupyterbook.hnishi.com +nostats +nocomments +nocmd;; global options: +cmd;jupyterbook.hnishi.com.hnishiINAjupyterbook.hnishi.com.com144INCNAMEhnishi.github.io.hnishi.github.io.io3600INA185.199.108.153hnishi.github.io.io3600INA185INA185.199.111.153hnishi.github.io.io3600INA185INA185INA185.199.110.153hnishi.github.io.io3600INA185INA185INA185INA185.199.109.153
反映されていないときにブラウザでアクセスすると、
サイトにアクセスできません jupyterbook.hnishi.com のサーバーの IP アドレスが見つかりませんでした。
と言われます。
以下のように、github pages で 404 が返される場合。
gh-pages branch の CNAME ファイルが消えている可能性があります。
CNAME ファイルは、github の設定をしたときに自動で gh-pages ブランチに作成されますが、github actions などで自動ビルドして push されるタイミングでブランチが上書きされ CNAME ファイルが消えてしますことがあるので注意します。
(私は、とりあえず main ブランチに CNAME をおいて build 結果に含まれるようにしています。)