ハカセノオト

moon indicating dark mode
sun indicating light mode

GitHub pages のサイトに Google Domains で取得したカスタムドメイン(subdomain)を設定する

March 21, 2021

先日、GitHub Pages を利用して公開した下記のサイトにカスタムドメインを設定する際に少しわかりにくかったので記載します。

https://jupyterbook.hnishi.com/intro.html

GitHub 側の設定

公式の手順は下記に記載があります。

GitHub Pages サイトのカスタムドメインを管理する - GitHub Docs

公開したいレポジトリの設定で、下記のように設定したいドメインを入力しておく。

(今回の場合、jupyterbook.hnishi.com)

2021 03 14 14 44 52

このとき以下のようなメッセージが出るが、まだ登録するカスタムドメインが 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 を使います。

2021 03 14 14 57 06

Custom resource records で CNAME を下記のように設定します。

(今回の場合は、jupyterbook —> hnishi.github.io.)

2021 03 14 15 08 47

以上で設定は完了です。


私がやったときは、反映までに 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.hnishiINA
jupyterbook.hnishi.com.com144INCNAMEhnishi.github.io.
hnishi.github.io.io3600INA185.199.108.153
hnishi.github.io.io3600INA185INA185.199.111.153
hnishi.github.io.io3600INA185INA185INA185.199.110.153
hnishi.github.io.io3600INA185INA185INA185INA185.199.109.153

反映されていないときにブラウザでアクセスすると、

サイトにアクセスできません jupyterbook.hnishi.com のサーバーの IP アドレスが見つかりませんでした。

と言われます。

以下のように、github pages で 404 が返される場合。

2021 03 15 08 56 32

gh-pages branch の CNAME ファイルが消えている可能性があります。

CNAME ファイルは、github の設定をしたときに自動で gh-pages ブランチに作成されますが、github actions などで自動ビルドして push されるタイミングでブランチが上書きされ CNAME ファイルが消えてしますことがあるので注意します。

(私は、とりあえず main ブランチに CNAME をおいて build 結果に含まれるようにしています。)


hnishi のブログ


技術系の記事など。
綺麗に書こうとすると続かない気がするので、割と雑に、備忘録的に書いていく方針。
内容に誤りがあった場合などのご連絡は、Twitter の DM などで頂けると幸いです。
※ 記事中の Amazon 商品ページへのリンクは Amazon アソシエイト・プログラムによるリンクを使用しています。