u6k.Blog のソースコードを管理します
Table of Contents:
u6k.Blogは、以下のサービスが連携して配信されています。
- GitHub
- ソースコードを管理します。
- Travis CI
- GitHubにpushすると起動され、GitHubからソースコードを取得して各種チェックを行います。
- GitHub Pages
- u6k.Blogを配信します。
- Slack
- Travis CIのビルド結果を通知します。
u6k.Blogは、Jekyllをブログ・システムとして使用しており、Markdown形式で記事を執筆します。
開発用Dockerイメージをビルドします。
$ docker-compose build
Dockerコンテナを起動します。起動すると、blogコンテナにより_site
フォルダにサイトの静的ファイルが生成され、nginxコンテナにより配信されます。サイト生成後、ブラウザからは http://localhost:8080/ でアクセスできます。
$ docker-compose up -d
外部から表示確認するには、ngrok
を使用します。
$ ngrok http 8080
GitHub Pagesで配信するには、gh-pages
ブランチをチェックアウトして、_site
フォルダの内容を全て上書きします。
- Docker
$ docker version
Client:
Version: 17.07.0-ce
API version: 1.31
Go version: go1.8.3
Git commit: 8784753
Built: Tue Aug 29 17:41:05 2017
OS/Arch: windows/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:45:38 2017
OS/Arch: linux/amd64
Experimental: false
- Markdownエディタ
- 記事をMarkdown形式で執筆するため、Markdownエディタであれば何でも良いです。
- 筆者は、AtomやVisualStudioCodeを使用しています。
- ngrok
- 外部から表示確認を行うときに必要です。
gh-pagesブランチにプッシュして、GitHub Pagesにu6k.Blogをデプロイする手順。
# クリーンアップする
git clean -xdf
git reset --hard
git pull origin master
# u6k.Blogを生成する
docker build -t blog .
docker run --rm -v $(pwd):/var/my-blog blog
tar zcvf ../site.tgz _site/
git clean -xdf
git reset --hard
# gh-pagesブランチをチェックアウトする
git checkout gh-pages
git pull origin gh-pages
# CNAMEファイルを退避する
cp CNAME ../
# 既存ファイルを削除する
git rm -rf '*'
# 生成したu6k.Blogを展開する
tar zxvf ../site.tgz
mv _site/* .
rm -r _site/
mv ../CNAME .
# gitプッシュする
git add .
git commit -m "generate u6k.Blog"
git push origin gh-pages
貴重なアイデアをご提案やバグ報告などを頂ける場合は、Issueを書いていただけると幸いです。