はじめに
GithubではプロジェクトごとにWikiページを持てるようになっています。
でもブラウザから直接GitHubのサイトを開いてWikiを編集しちゃうと
すぐに公開されちゃうんですよね。
やっぱり実際に表示されるページをブラウザで確認しておきたい。
特にすでに公開済みのWikiページを編集するときは確認しておかないと不安。
- 手早くGitHub Wikiページをプレビューしたい
- でもgollum(rubyも)を用意するの面倒
でも我らにはdockerがあるじゃないか
ということでサクッとプレビュー環境作ります。
dockerとdocker-machineがインストール済みなら数分で出来ます。
関連記事:RubyをインストールせずにdockerでGitHub Pagesのプレビュー環境を作るメモ
前提条件
dockerとdocker-machineが利用可能であること
(今回はドライバにvirtualboxを利用)docker-machineにて
default
ホストが作成されていること
もし作成されていない場合は以下コマンドで作成しておいてください。
docker-machine create -d virtualbox default
手順
- Github WikiページのGitリポジトリをクローン
- Docker、Docker-Composeの設定ファイル作成
- Gollumコンテナ起動
手順(それぞれの詳細)
1. Github WikiページのGitリポジトリをクローン
Wikiページを作成するGithubのプロジェクトを開きます。
上部のメニューからWiki
を選択すると、Wikiページが開きます。
右側にWikiページのGitリポジトリのURLが表示されていますのでこれをコピーしておきます。
コピーしたらコンソールで以下コマンドを実行しクローンします。
git clone [コピーしたWikiページのGitリポジトリURL]
クローン先のディレクトリはカレントユーザーのホームディレクトリ配下にしてください。
これは、DockerMachine + virtualboxの場合、ホームディレクトリ配下であれば
自動的にDockerMachineで作ったホストとファイル共有されるからです。
参考:GitHub Wikiページのクローン方法についてはこちらが読みやすかったです。
2. Docker、Docker-Composeの設定ファイル作成
Gollum用のDockerコンテナの準備を行います。
直接docker run
を実施すればDocker-Composeは不要なのですが、
オプション指定などが楽なため今回はDocker-Composeを利用してDockerコンテナを起動します。
# 1.でクローンしたディレクトリへ移動
cd [1.でクローンしたディレクトリ]
# Dockerfile作成(内容は下記参照)
vi Dockerfile
# docker-compose.ymlの作成(内容は下記参照)
vi docker-compose.yml
- Dockerfileの内容
FROM ruby
RUN apt-get -y update && apt-get -y install libicu-dev
RUN gem install gollum
RUN gem install github-markdown
RUN gem install redcarpet org-ruby
VOLUME /wiki
WORKDIR /wiki
CMD ["gollum", "--port", "80"]
EXPOSE 80
gem install github-markdown
がポイントです。
- docker-compose.ymlの内容
version: '2'
services:
gollum:
build: .
ports:
- "80:80"
volumes:
- $PWD:/wiki
command: ["gollum", "--port", "80" , "--allow-uploads" ]
3. Gollumコンテナ起動
ここまできたら以下コマンドでGollumコンテナを起動してみましょう。
起動にはdocker-machineで作成されたdefault
マシンを使います。
# defaultマシンを利用するように環境変数設定
eval $(docker-machine env default)
# docker-composeでコンテナ起動
docker-compose up -d
起動しましたか?
まずはdocker-machineのIPアドレスを確認します。
docker-machine ip default
IPを確認したらブラウザで以下URLを表示してみましょう。
http://[確認したIP]/
無事表示されましたね?
ブラウザ上で編集するとgitコミットもされます。
ガンガンWikiページを作成しましょう。
仕上げ(公開)
ある程度作成できたらGithubへpushすればGithub上のWikiページに反映されます。
git push origin master
以上です。簡単ですね!