wekanをDockerで動かしたいけどMongoDBはホストマシンを使う
Dockerが動いてるホストマシンになぜかMongoDBが動いているので、wekanのDBをホストマシンに向けて動かした。
wekanは旧Libraboardで、Trelloのクローン。"カンバン"のウェブサービス
Trello
wekan
経緯
ドキュメントにしたがって、docker-composeでWekanを動かしていたが、MongoDBを2つ動かすのは無駄が多いと思ったのでまとめたかった。
状況
Wekanを立ち上げてもMongoDBへの接続に失敗する。
docker-compose.ymlの内容
wekan: image: mquandalle/wekan environment: - MONGO_URL=mongodb://192.168.123.456:27017/wekan - ROOT_URL=http://192.168.123.456:8081 ports: - 8081:80 privileged: true
立ち上げた時の雰囲気(うろ覚え)
$ docker-compose up -d ... $ docker logs -f wekan_wekan_1 ... 192.168.123.456:27017 ... Connection refused ...
mongoコンテナからの接続も失敗する。
$ docker run -it mongo bash hogehoge/# mongo --host 192.168.123.456 ... Connection refused
解決方法
Wekanの設定ばっかり疑ってたけど、結局はMongoDBの設定ができてなかった。
MongoDBの接続元のIP制限を外したら接続できて無事動いた。
$ less /etc/mongod.conf ... # network interfaces net: port: 27017 # bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces. ...
/etc/mongod.conf
のnet:bindIp
をコメントアウトしてmongodbを再起動して、再度wekanを起動した。
$ sudo systemctl restart mongod $ docker-compose up -d