16
23

More than 5 years have passed since last update.

Growi(Markdown記法によるWikiプラットフォーム)をdocker-composeで稼働させる

Last updated at Posted at 2019-04-04

TL;DR

  • Markdown記法で書けるオープンソースなWikiプラットフォーム GROWI のセットアップ方法です
    • docker-composeでコンテナとして立ち上げるので,ホストの環境を汚しません
    • growiのdocker-compose版(2019/03/29時点)では,elasticsearchのイメージタグがoss版になっていないので,修正点をメモします

Growi概要

  • Growiは,数式,UML図などを含め,サイドバイサイドに編集できる高機能なWikiシステムです
  • ユーザ認証,公開設定など,複数人での編集にも効果を発揮します
  • リバースプロキシでhttps対応できます(簡単)

growi.jpg

Dockerコンテナ群の立ち上げ

  • X-Pack絡みでElasticsearchコンテナがエラーを吐くので,OSS版Elasticsearchを使用するとスムーズです
  • growiサービスは,以下の手順で立ち上げることができます.
    1. docker-compose版のgrowiをgit cloneする
    2. docker-compose.ymlの記述をコンテナ環境に応じて修正する
    3. docker-compose upする

growi-docker-composeの取得

git clone https://github.com/weseek/growi-docker-compose.git growi

設定情報(docker-compose.yml)の修正

  • Growi本体の設定と,elasticsearchのコンテナイメージを若干修正します.
  • 修正対象は以下の2つのファイルです
    • Growiのdocker-compose構成ファイル(docker-compose.yml)
    • ElasticsearchのDockerfile(elasticsearch/Dockerfile)

growi/docker-compose.yml

  • (必須)ファイルアップロード先をローカル(Dockerホストのボリューム内)に設定し,MathJAXを有効化します
-      # - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS
-      # - MATHJAX=1             # activate this line if you want to use MathJax
+      - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS
+      - MATHJAX=1             # activate this line if you want to use MathJax
  • (任意)Growiのデータを,Docker Volume管理の場所から,ローカルディレクトリに変更します
    • Docker管理のボリュームを使う場合は,変更不要です
-      - growi_data:/data
+      - ./growi_data:/data
  • (任意)mongodbのデータ置き場を,ローカルディレクトリに変更します
    • Docker管理のボリュームを使う場合は,変更不要です
-      - mongo_configdb:/data/configdb
-      - mongo_db:/data/db
+      - ./mongo/mongo_configdb:/data/configdb
+      - ./mongo/mongo_db:/data/db
  • (任意)elasticsearchのデータ置き場を,ローカルディレクトリに変更します
    • Docker管理のボリュームを使う場合は,変更不要です
-      - es_data:/usr/share/elasticsearch/data
+      - ./es_data:/usr/share/elasticsearch/data
  • (任意)前項の,ローカルディレクトリに変更したDocker Volumeは不要なので,削除します.
-volumes:
-  growi_data:
-  mongo_configdb:
-  mongo_db:
-  es_data:

growi/elasticsearch/Dockerfile

  • (必須)oss版のelasticsearchのDockerイメージを使用するよう変更します
-FROM docker.elastic.co/elasticsearch/elasticsearch:6.6.1
+FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1

docker-composeでコンテナの立ち上げ

docker-compose up

[注意] elasticsearchのデータ置き場を変更した場合

  • docker-compose upより前に,下記のようにディレクトリを作り,elasticsearchコンテナからアクセスできるようにしておく必要があります
    • この設定を行っていないと,elasticsearchコンテナがFailed to created node environment例外を発行して再起動を繰り返してしまいます
mkdir es_data
sudo chown -R 1000:1000 es_data

接続確認

  • ブラウザでlocalhost:3000にアクセスし,growiの初期設定画面が見られることを確認します.
    • アクセス制限がlocalhost限定になっているので,他のホストから接続したい場合は,docker-compse.ymlのappコンテナのports設定を修正してください.
    • ポートの変更も同じ場所(appコンテナのports設定)で対応できます.
  • 初期設定画面
  • ログイン画面
    • ログインすると,冒頭の作業画面で作業を開始できます
  • https対応は,別途nginxコンテナを立ててリバースプロキシすると良いです

参考

16
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
23