LoginSignup
18
26

More than 3 years have passed since last update.

GROWIを導入してみた

Last updated at Posted at 2019-01-30

GROWIオンプレ構築メモ

社内チームでの情報共有ツールをさがしていて、良さそうだから導入を試みたのだが、なかなか一筋縄ではいかない。
オンプレでWindowsでって環境に縛られる人もいるかもしれない。
色々と調べなんとか運用にこぎつけたので備忘録として。

20190620編集 ミドルウェアのバージョンが上がったのかなんなのかで、結構変わったので修正

環境

Docker for Windows

インストール

  • インストールはインストーラを実行するだけ
  • アップデートは実行した
  • Windowの機能でHyper-vを有効にしておく。
  • Hyper-vマネージャを起動し、仮想マシンの中にMobyLinuxVMがあるか確認する。
  • Dockerのプロキシを社内のプロキシサーバに設定しておく。

    • Docker→Settings→Proxies
    • 192.168.xxx.xxx:xxxx
  • ローカルドライブの共有

    • Docker→Setting→Shared Drives → Cにチェック

Git

  • 環境変数でGitのpathを通す

- Gitのproxyを設定する

git config --global http.proxy 192.168.xxx.xxx:xxxxx
git config --global https.proxy 192.168.xxx.xxx:xxxxx

Docker

PowerShellから起動

下のコマンドを実行

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

カレントディレクトリにgrowiフォルダが作成されるので、直下のDockerfileを編集する。
プロキシ情報を記載

ENV https_proxy "http://192.168.xxx.xxx:xxxxx/"
ENV http_proxy "http://192.168.xxx.xxx:xxxxx/"

Docker-Compose

docker-compose.ymlを編集

ポートをデフォルトから編集

- 3000:3000

パスワードはデフォルトだとよろしくないそうなので

- PASSWORD_SEED=変更する!

ファイルのアップロードはローカル

- FILE_UPLOAD=local

数式とかのやつ? とりあえずON

- MATHJAX=1 

HACKMDとかよくわからないのでコメントアウトのまま

growiのデータをホスト側にマウント

    volumes:
      - ./data/growi_data:/data

elasticsearchのjvmのproxyを設定

environment:
  - "ES_JAVA_OPTS=-Xms256m -Xmx256m -DproxyHost=192.168.xxx.xxx -DproxyPort=xxxxx"

elasticsearchのvolumeはこんな感じでいいかな

    volumes:
      - es_data:/usr/share/elasticsearch/data
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

その他はデフォルトのままだと思う。

elasticsearchのDockerfile

直下のelasticsearchフォルダの中にあるDockerfileを編集する。

RUN ES_JAVA_OPTS="-DproxyHost=192.168.XXX.XXX -DproxyPort=XXXXX -Dhttps.proxyHost=192.168.XXX.XXX -Dhttps.proxyPort=https_XXXXX" bin/elasticsearch-plugin install analysis-kuromoji
RUN ES_JAVA_OPTS="-DproxyHost=192.168.XXX.XXX -DproxyPort=XXXXX -Dhttps.proxyHost=192.168.XXX.XXX -Dhttps.proxyPort=https_XXXXX" bin/elasticsearch-plugin install analysis-icu

実行

これで実行

cd growi
docker-compose up -d

http://(ipアドレス):3000

でアクセス

バックアップとリストア

 バックアップとリストアはDockerのvolumeマウントでホスト側にファイル保存したかったけど、うまくいかないようなので Docker exec でダンプ、Docker cpでファイルコピーみたいな無理やり手順で対応。
リストアも Docker cp でバックアップファイルをコピーし、Docker exec でリストアを実行する。

この辺はMongoDBとWindowsの相性が悪いのが原因か。

アップロードファイルは growi/data/growi_data/uploads に保存されるので
そこのバックアップを取れば大丈夫?

バックアップ

以下のPowerShellスクリプトを実行

#growi\backupフォルダが必要
$date = Get-Date
$date = $date.ToString("yyyyMMdd")
docker exec growi_mongo_1 mongodump
docker cp growi_mongo_1:/dump/growi .\backup\$date
docker exec growi_mongo_1 rm -rf ./dump

リストア

以下のPowerShellスクリプトを実行

$restore_dir = Read-Host "リストアしたい日付をyyyyMMddで入力"
if(!(Test-path .\backup\$restore_dir)){ Exit }
$Restore_Set = Get-ChildItem .\backup\$restore_dir
docker exec growi_mongo_1 mkdir -p ./dump/growi
$Restore_Set | %{ docker cp $_.FullName growi_mongo_1:./dump/growi }
docker exec growi_mongo_1 mongorestore --db growi --drop ./dump/growi

サーバー移行(※20190410追記)

サーバーを移行する場合(移行先の環境は移行元と同じ Docker for Windows )
1. 上記バックアップ手順でバックアップを実行する
2. GROWIフォルダごと移行先へコピー
3. 移行先でDocker-Composeを実行する
4. 上記リストア手順でリストアを実行する

課題

  • なんかうまくいかない時はDocker for WindowsのShareDriveがおかしくなっている可能性が…。チェック入れてapply押してもまたチェックが消える症状。ファクトリーリセットじゃないと直らないとかでちょっと厄介。Docker for Windowsはやめた方がいいのかもしれない(笑)
  • サイドバーに何も表示されないのは未実装らしい・・・。
  • Docker-Composeのvolumeとか全然理解できていない。
  • volumeの設定、mongoが難しい? 永続化って?
  • そもそもmongoのvolumeマウントはwindowsには対応していないような感じ?
  • バックアップはAWSを使えば簡単らしい…。
  • Proxy下はマジで大変
  • Docker for Windows はやめた方がいいのかもしれない(笑)
  • 再起動時、サインアウト時にはサービスが止まる
18
26
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
18
26