こちらは インフラ勉強会Advent Calendar 21 日目の記事です。
前置き
インフラ勉強会の中で最も古いサービスと言ってもいいwikiシステム「GROWI」。
当勉強会では前バージョンの「Crowi-Plus」時代から使っており、最近コンテナ化したらしい。
手順
GROWI v3.2.0でHackMDに対応し、wikiの同時編集が可能になったのでこれは追加するしかない。
現在のバージョンは
GROWI 3.3.3
HackMD用のコンテナを作成
$cd growi
$vim docker-compose.override.yml ←新規作成
docker-compose.override.yml
docker-compose.override.yml
version: '3'
services:
##
# HackMD(CodiMD) container
# see https://github.com/hackmdio/codimd#configuration
#
hackmd:
build:
context: ./hackmd
environment:
- GROWI_URI=https://wiki.infra-workshop.tech
- HMD_DB_URL=mysql://hackmd:hackmdpass@mariadb:3306/hackmd
- HMD_CSP_ENABLE=false
ports:
- 3100:3000 # localhost only by default
depends_on:
- mariadb
##
# MariaDB
# see https://hub.docker.com/_/mariadb/
mariadb:
image: mariadb:10.3
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
environment:
- MYSQL_USER=hackmd
- MYSQL_PASSWORD=hackmdpass
- MYSQL_DATABASE=hackmd
- MYSQL_RANDOM_ROOT_PASSWORD=true
volumes:
- mariadb_data:/var/lib/mysql
volumes:
mariadb_data:
docker-compose.ymlの編集
$vim docker-compose.yml
docker-compose.yml
docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: ./Dockerfile
ports:
- 3000:3000 # localhost only by default
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
# - 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
# - PLANTUML_URI=http:// # activate this line and specify if you use your own PlantUML server rather than public plantuml.com
- HACKMD_URI=https://hackmd.infra-workshop.tech # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers # コメントアウトを解除
- HACKMD_URI_FOR_SERVER=http://hackmd:3000 # activate this line and specify HackMD server URI which # コメントアウトを解除
- can be accessed from this server container # 追加
command: "dockerize
-wait tcp://mongo:27017
-wait tcp://elasticsearch:9200
-timeout 60s
npm run server:prod"
volumes:
- growi_data:/data
mongo:
image: mongo:3.4
volumes:
- mongo_configdb:/data/configdb
- mongo_db:/data/db
elasticsearch:
image: elasticsearch:5.3-alpine
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m" # increase amount if you have enough memory
command:
- sh
- -c
- "./bin/elasticsearch-plugin list | grep -q analysis-kuromoji || ./bin/elasticsearch-plugin install analysis-kuromoji;
./bin/elasticsearch-plugin list | grep -q analysis-icu || ./bin/elasticsearch-plugin install analysis-icu;![Bad Request]()
/docker-entrypoint.sh elasticsearch"
volumes:
- es_data:/usr/share/elasticsearch/data
- es_plugins:/usr/share/elasticsearch/plugins
- ./esconfig:/usr/share/elasticsearch/config
volumes:
growi_data:
mongo_configdb:
mongo_db:
es_data:
es_plugins:
docker-composeの起動
$ docker-compose up -d
ポート開放をし、WAN側からtcp3100 にアクセスできるようにする。
以上