概要
Hugo開発を自身の端末に作らずに、どこからでも気軽にHugoのテンプレート変更や記事の確認などを行いたい。
Killercodaという学習用プラットフォームサービスでHugo用デバッグ環境を用意する方法を記載します。
Killercoda過去記事
KillercodaとGithubリポジトリを同期させる方法 Killercodaのオリジナルシナリオの作成方法
このページでわかること
- KillerCodaを使ったHugo開発環境の作り方
1. Killercoda Hugoシナリオ ディレクトリ構成
- /
- Hugo/
- index.json
- background.sh
- foreground.sh
- intro.md
- finish.md
- step1.md
2. 実装解説
2-1. foreground
- foregroundにスクリプトを定義すると、シナリオ実行時にスクリプトを呼び出すことができます。
- 実装以下
- /tmp/background-finishedというファイルを作成するまでloop
- foreground.sh
while [ ! -f /tmp/background-finished ]; do sleep 5; echo 'check file'; done echo Hello and Welcom to this scenario!
- /tmp/background-finishedというファイルを作成するまでloop
2-2. background
- backgroundにスクリプトを定義すると、foregroundとは別にスクリプトを呼び出すことができます。
- 実装は以下
- hugoのインストール
- Githubから自身のhugoリポジトリの取得及びgit submoduleによるthemeの設置のでは
- /tmp/background-finishedというファイルを作成
- background.sh
snap install hugo git clone https://github.com/myhugo-repository.git ./repos cd ./repos git submodule -i touch /tmp/background-finished
2-3. step1
- 外部インターネットからkillercodaの環境内へアクセスするには、グローバル用IP+Portの組み合わせのhostnameが割り当てられアクセスすることができます。
- またこのhostnameは
/etc/killercoda/host
ファイルに以下のフォーマットで記載されています。
-を含むランダム英数字-IP-IP-IP-IP-PORT.*.*.killercoda.com
- よってstep1では上記hostファイルを加工し、hugoサーバの起動時に–baseURL=オプションとして起動できるようにしています。
sed -e 's/^/hugo server --buildDrafts --port 443 --bind 0.0.0.0 --baseURL=/' -e 's/443/PORT/' /etc/killercoda/host > startHugo.sh
sh startHugo.sh
- ACCESS HUGOへアクセスするとhugoリポジトリのコンテンツが表示されます。
上記で紹介したサンプルシナリオは以下になります。