Docker で Libreboard 動かしてみた

昨日「 オープンソースのTrelloクローン Libreboard | Ryuzee.com 」の記事を読んで面白そうだと思ったので、 Docker で動かしてみた。一手間かかったけど動かすことはできたので、以下その手順。 Docker はインストールされてることを前提

  1. Libreboard のリポジトリをクローンして手元に落としてくる

    git clone https://github.com/libreboard/libreboard.git
    
  2. 落としてきた Libreboard のディレクトリに移動し Docker イメージを作成する

    cd libreboard
    docker build -t libreboard .
    
  3. Libreboard は MongoDB をデータ保存に使用しているので、 MongoDB の Docker イメージも用意して起動しておく

    docker pull mongo
    docker run --name mymongo -d mongo
    

    環境によっては起動時に numactl: This system does not support NUMA policy といわれて起動できないことがあるので、その場合は

    docker run --name mymongo --entrypoint=mongod -d mongo
    

    という形で直接 MongoDB を起動するとよい(参考: mongodb - Docker: Mongo exits on run - Stack Overflow

  4. あらかじめ作成しておいた Libreboard の Docker イメージを使ってコンテナを起動する

    docker run -dit --link mymongo:mongo -e ROOT_URL="http://example.com" -p 5555:8080 libreboard sh -c 'export MONGO_URL=mongodb://$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/libreboard; /meteor-run.sh'
    

    docker の --link オプションを使うと、起動したコンテナ内に link で接続した先のコンテナから環境変数が渡されてくるので、それを使って MONGO_URL 環境変数を定義する。 Docker の -e オプションだとコンテナ内部の変数は展開できなさそうだったため、コマンド実行時に定義している。 ROOT_URL はとりあえず適当なものに。

上記の手順後、 Docker サーバの 5555 ポートにウェブブラウザでアクセスすると、めでたくログイン画面が表示された

Libreboard 自体は確かにまだまだ機能不足な点が否めないが、使い勝手はよさそうだったので今後が楽しみである