# 複数の GROWI を起動
TIP
この Cookbook は docker-compose による管理を前提としています
# 概要
この章では1つのマシン上に3つの GROWI を立ち上げる手順を紹介します。
# イメージのビルド
Docker イメージをビルドします。growi-docker-compose がインストールされているフォルダにて、以下のコマンドを実行してください。
$ docker build -t growimulti_app .
# docker-compose.yml の編集
./docker-compose.yml
ファイルの services:app
およびボリュームを以下のように複製してください。なお、今回はリソース節約のために Mongo DB と Elasticsearch はそれぞれ1つだけで運用します。
...
services:
app-1:
# 上記でビルドしたイメージ名に合わせます
image: "growimulti_app:latest"
ports:
- 127.0.0.1:3001:3000
links:
- mongo:mongo
- elasticsearch:elasticsearch
depends_on:
- mongo
- elasticsearch
environment:
# この MONGO_URI と ELASTICSEARCH_URI のパス名は app-1 用のものに揃えてください
- MONGO_URI=mongodb://mongo:27017/growi-1
- ELASTICSEARCH_URI=http://elasticsearch:9200/growi-1
- PASSWORD_SEED=changeme
command: "dockerize
-wait tcp://mongo:27017
-wait tcp://elasticsearch:9200
-timeout 60s
npm run server:prod"
restart: unless-stopped
volumes:
- growi_data_1:/data
app-2:
# 上記でビルドしたイメージ名に合わせます
image: "growimulti_app:latest"
ports:
- 127.0.0.1:3002:3000
links:
- mongo:mongo
- elasticsearch:elasticsearch
depends_on:
- mongo
- elasticsearch
environment:
# この MONGO_URI と ELASTICSEARCH_URL のパス名は app-2 用のものに揃えてください
- MONGO_URI=mongodb://mongo:27017/growi-2
- ELASTICSEARCH_URI=http://elasticsearch:9200/growi-2
- PASSWORD_SEED=changeme
command: "dockerize
-wait tcp://mongo:27017
-wait tcp://elasticsearch:9200
-timeout 60s
npm run server:prod"
restart: unless-stopped
volumes:
- growi_data_2:/data
app-3:
# 上記でビルドしたイメージ名に合わせます
image: "growimulti_app:latest"
ports:
- 127.0.0.1:3003:3000
links:
- mongo:mongo
- elasticsearch:elasticsearch
depends_on:
- mongo
- elasticsearch
environment:
# この MONGO_URI と ELASTICSEARCH_URI のパス名は app-3 用のものに揃えてください
- MONGO_URI=mongodb://mongo:27017/growi-3
- ELASTICSEARCH_URI=http://elasticsearch:9200/growi-3
- PASSWORD_SEED=changeme
command: "dockerize
-wait tcp://mongo:27017
-wait tcp://elasticsearch:9200
-timeout 60s
npm run server:prod"
restart: unless-stopped
volumes:
- growi_data_3:/data
...
volumes:
# それぞれの GROWI で使用しているボリューム名に合わせてください
growi_data_1:
growi_data_2:
growi_data_3:
...
# 起動
以下のコマンドを実行後、それぞれのポートにアクセスして起動を確認します。
$ docker-compose up
http://localhost:3001 (opens new window) (app-1)
http://localhost:3002 (opens new window) (app-2)
http://localhost:3003 (opens new window) (app-3)
# アップグレード
# コンテナを停止
docker-compose stop
# Docker イメージと App コンテナの削除
docker-compose rm app-1
docker-compose rm app-2
docker-compose rm app-3
docker rmi growimulti_app
docker rmi weseek/growi:3
# Docker イメージの起動
git pull
docker build -t growimulti_app .
# 起動
docker-compose up