はじめに
Keystone.jsをお試したい!
でもMongodbって初期設定がめんどう
なのでdocker-composeでお試したい!
だからといってKeystone.jsのdocker-composeで組まれたのを探してみても、なかなか見つからない。そこで一つ、簡単に組んでて理解がしやすそうなGitリポジトリを発見したので、お試してみたというお話です。
発見したGitリポジトリは次のやつ。
エラー
バージョンの違いなのか何なのか、Gitクローンからdocker-composeでアップしてみても、このkeystoneは立ち上がってもエラーを吐きます。
内容としてはmonogdbにアクセス出来ていないというもののようで、これを改善すればなんとかなるかなと、デバッグ…と呼んでいいんですね?開始しました。
keystone_1 | ------------------------------------------------
keystone_1 | Mongoose connection "error" event fired with:
keystone_1 | Error [MongoError]: failed to connect to server [mongodb:27017] on first connect [Error: connect ECONNREFUSED 172.29.0.2:27017
keystone_1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1247:16) {
keystone_1 | name: 'MongoError'
keystone_1 | }]
keystone_1 | at Pool.<anonymous> (/usr/src/app/node_modules/mongodb-core/lib/topologies/server.js:336:35)
keystone_1 | at Pool.emit (node:events:513:28)
keystone_1 | at Connection.<anonymous> (/usr/src/app/node_modules/mongodb-core/lib/connection/pool.js:280:12)
keystone_1 | at Object.onceWrapper (node:events:628:26)
keystone_1 | at Connection.emit (node:events:513:28)
keystone_1 | at Socket.<anonymous> (/usr/src/app/node_modules/mongodb-core/lib/connection/connection.js:189:49)
keystone_1 | at Object.onceWrapper (node:events:628:26)
keystone_1 | at Socket.emit (node:events:513:28)
keystone_1 | at emitErrorNT (node:internal/streams/destroy:151:8)
keystone_1 | at emitErrorCloseNT (node:internal/streams/destroy:116:3)
keystone_1 | at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
keystone_1 | Error: KeystoneJS (Website Template) failed to start - Check that you are running `mongod` in a separate process.
keystone_1 | at NativeConnection.<anonymous> (/usr/src/app/node_modules/keystone/lib/core/openDatabaseConnection.js:62:10)
keystone_1 | at NativeConnection.emit (node:events:513:28)
keystone_1 | at /usr/src/app/node_modules/mongoose/lib/connection.js:824:17
keystone_1 | at connectCallback (/usr/src/app/node_modules/mongodb/lib/mongo_client.js:527:5)
keystone_1 | at /usr/src/app/node_modules/mongodb/lib/mongo_client.js:418:11
keystone_1 | at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
思ったよりもdocker-composeのバージョン2と3との違いを知らないため悪戦苦闘(1時間)しながら、何とかアクセスできるkeystoneのリポジトリを作成しました。
お試す
リポジトリに上げておいたので、それをクローンしてからdocker-composeで立ち上げましょう。dockerだとかdocker-composeのインストールをしていない人は、ぱぱっとしてきちゃってください。
git clone https://github.com/DogKingFun/recipe-docker-keystonejs-nginx.git
cd recipe-docker-keystonejs-nginx
docker-compose up -d
立ち上がれば
IPを適当に変更して http://ip:8080/keystone
でアクセスすることが出来ると思います。
終わりに
でもkeystoneで使いたかったblogの機能は搭載されていないタイプのやつでしたので、たぶんまた今度、blog機能も搭載されたやつを作り直すと思います。