読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

Dockerでgollumを動かした

なんかwiki動かしたいなーと思ったのでDockerでgollumを動かしてみたよ。
gollumはrubyとかに依存してるので、実行用のスクリプトはせっかくなのでrubyで書いてみた。

とりあえずDockerfileとrun.rbを次のような具合で作った。

Dockerfile:

## -*- docker-image-name: "gollum-docker" -*-
FROM opamp/archlinux:latest
MAINTAINER opamp_sando <opampg@gmail.com>

RUN echo 'Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
RUN pacman -Syu --noconfirm ruby python2 git gcc make icu
RUN gem install gollum

ADD run.rb /
CMD ["/usr/bin/ruby", "/run.rb", "/srv/wiki"]

run.rb:

#!/usr/bin/env ruby
#-*- encoding:utf-8 -*-

if ARGV.length != 1 then
  STDERR.puts "Invalid arguments"
  exit(1)
end
WIKI_DIR = ARGV[0]
GOLLUM_PATH="/.gem/ruby/2.2.0/bin/gollum"

def init_wiki_dir?(dir)
  File.exists?(dir + File::Separator + ".git")
end

def init_wiki_dir(dir)
  Dir.chdir(dir)
  `git init .`
end

def run_server(dir)
  Dir.chdir(dir)
  `#{GOLLUM_PATH} --port 80 --mathjax`
end

if init_wiki_dir?(WIKI_DIR)
  run_server(WIKI_DIR)
else
  init_wiki_dir(WIKI_DIR)
  run_server(WIKI_DIR)
end

で、

$ docker build -t gollum-docker .

とかで適当にbuildして

$ docler run -v /srv/wiki:/srv/wiki -p 10080:80 gollum-docker

とかで適当に走らせるととりあえず動く。
ディレクトリとかは割と適当に...

この場合は http://localhost:10080/ でアクセスできる。

Firefox ブラウザ無料ダウンロード