我想尝试使用keystone.js

首先

我想尝试一下Keystone.js!但是配置Mongodb很麻烦,所以我想用docker-compose来试试!然而,我找不到Keystone.js的docker-compose设置。所以我发现了一个很简单易懂的Git仓库,于是就试了试。我发现的Git仓库是下面这个:

错误 (wù cuò)

无论是版本差异还是其他原因,即使从 Git 克隆到 docker-compose 进行部署,这个keystone服务依然会启动但报错。
错误似乎是无法访问mongodb,我想如果解决这个问题应该就可以了,这样的话可以称之为调试吧?我开始了。

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)

我在创建keystone的存储库时,由于不知道docker-compose版本2和3之间的区别,所以花了差不多一个小时在苦苦挣扎中。最终还是设法实现了可访问的存储库。

请试一试

我已将其上传到代码库,所以请先将其克隆下来,然后使用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的博客功能,但发现没有所需的那种类型,所以我可能会再次重新制作一个带有博客功能的版本。

bannerAds