DockerでGrowiを建てた話

環境

さくらVPS
CentOS7

参考サイト様

CentOS7.5にGrowiをインストール - Qiita
GrowiをDockerでたてる - Qiita

とりあえずポート開放

なんか3000番使ってる人が多かったので脳死で3000を開放

$ firewall-cmd --add-port=3000/tcp --zone=public --permanent

firewall-cmdファイヤーウォール周りをいじいじするためのコマンドです
詳しくはリファレンスを読めば... と調べたんですけど公式のリファレンス的なのないんですね(Linux noob)
第5章 ファイアウォールの使用 - Red Hat Customer Portal
Red Hatのなら信頼できるやろ、ということでこれを読めばいいと思います。

Growiの前提諸々の導入

「root権限でやっちゃえるとこは最初にやっちゃおうぜ、sudo一々つけるのめんどいし」 と、この前提導入までの作業を全てrootで行っています。セキュリティ的にいいのか悪いのかはわかりません。
設定いじれやって話なんですけども。

MongoDBをインストール

もんごもんご!

$ vim /etc/yum.repos.d/mongodb-org-3.4.repo

yumに?リポジトリを追加します。vimで開いたら MongoDBの公式ドキュメントf:id:circus7:20190413015132p:plain 上記画像の赤く囲ってあるとこをコピペして貼り付けます。 自分のときは

[mongodb-org-4.0] 
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc 

でした。

$ yum install mongodb-org 

インスコyumはパッケージ管理ソフトです。
6.3. Yum と Yum リポジトリの設定 - Red Hat Customer Portal

$ systemctl start mongod.service 

で起動

$ systemctl enable mongod.service

自動起動するようにさせる。

Node.jsとYarnをインストール

Node.jsを入れる

$ curl --location https://rpm.nodesource.com/setup_8.x | bash - 

rpmもパッケージ管理ソフトです、yumとの違いを調べるといいと思います。 インストールすると

## Run `sudo yum install -y nodejs` to install Node.js 8.x LTS Carbon and npm. 
## You may also need development tools to build native addons: 
    sudo yum install gcc-c++ make 
## To install the Yarn package manager, run: 
    curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo 
    sudo yum install yarn

とログが出てくるので##がついてないとこを1行ずつコピペして実行して、必要なものを入れてゆくう。

Docker使って建てる

Docker入れるぜ!

yumに?リポジトリを追加、インストール

$ curl -O https://download.docker.com/linux/centos/docker-ce.repo
$ mv docker-ce.repo /etc/yum.repos.d/
$ yum install docker-ce

起動

$ systemctl start docker

今回はここに建てました

Docker-compose入れるぜ!

いわばDocker管理ソフトみたいなもんです

$ yum install docker-compose

建てるぜ!

Growiのコンテナをクロ~ンするディレクトリをつくって移動してクロ~ンします。

$ mkdir /home/tpp(ユーザーdir)/wiki
$ cd /home/tpp(ユーザーdir)/wiki
$ git clone https://github.com/weseek/growi-docker-compose.git

docker-compose.ymlを編集します。いわばDockerの設定ファイルです。

$ vim growi-docker-compose/docker-compose.yml
version: '3'

services:
  app:
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
#      - 127.0.0.1:3000:3000    # localhost only by default
      - 3000:3000
    links:
      - mongo:mongo
      - elasticsearch:elasticsearch
    depends_on:
      - mongo
      - elasticsearch
    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
#      - PASSWORD_SEED=changeme
      - PASSWORD_SEED=tpp
      # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rr

サーバーの外からもアクセスできるようにしたいので、127.0.0.1を削除。
これしないとlocalhostになっちゃいます。
PASSWORD_SEEDも適当なものに変更。

$ docker-compose up -d

コンテナ起動。ip:3000で入れたら成功。

追記

monogodbをわざわざ入れてるんですけど、そもそもgrowiに入ってるのでいらないっぽいです