mongodb - 在 Dokku 上部署时出现 Strapi EADDRNOTAVAIL 错误
问题描述
我正在尝试在 Digital Ocean 液滴上的 Dokku 实例上部署 Strapi。我最初在连接到 mongo 数据库时遇到了一些问题,但是经过一些试验和错误以及对这些文档和这个问题的大量审查后,我能够让它停止抱怨 mongo 连接。这是我的决赛config/environments/production/database.json
{
"defaultConnection": "default",
"connections": {
"default": {
"connector": "mongoose",
"settings": {
"client": "mongo",
"uri": "${process.env.MONGO_URL}",
"database": "${process.env.DATABASE_NAME}",
"username": "${process.env.DATABASE_USERNAME}",
"password": "${process.env.DATABASE_PASSWORD}",
"port": "${process.env.DATABASE_PORT || 27017}"
},
"options": {
"authenticationDatabase": "${process.env.DATABASE_AUTHENTICATION_DATABASE || ''}",
"useUnifiedTopology": "${process.env.USE_UNIFIED_TOPOLOGY || false}",
"ssl": "${process.env.DATABASE_SSL || false}"
}
}
}
}
这是我的config/environments/production/server.json
{
"host": "${process.env.HOST || '0.0.0.0'}",
"port": "${process.env.PORT || 1337}",
"production": true,
"proxy": {
"enabled": false
},
"cron": {
"enabled": false
},
"admin": {
"autoOpen": false
}
}
我相信最初的问题是我不小心将PORT
变量用于数据库而不是DATABASE_PORT
变量。
但是,现在我已经解决了这个错误:
error Error: listen EADDRNOTAVAIL: address not available <my-host-ip>:5000
我想也许某处缓存了一些错误的端口,但无论我做什么,我似乎都无法让它工作。我需要启用 ssl 吗?然后将letsencrypt证书添加到我的域?我使用了错误的端口吗?在 ? 中设置代理server.json
?
PS。我正在使用 Dokku Mongo。考虑到测功机不会像在 Heroku 上那样入睡,我认为这不是一个问题。这是一个不正确的假设吗?
此外,Droplet 上还有其他应用程序正在运行。也许是代理问题?
解决方案
推荐阅读
- javascript - 如何通过网络将原始数据从在 Ubuntu 上运行的 C 程序发送到 Android 设备应用程序?
- css - SVG 在中心 CSS 的 div 内缩放
- excel - 尝试在 excel VBA 中使用 Try-Catch 块获取内部异常时出错
- javascript - 如何根据javascript中的多个选项过滤嵌套数据?
- python - 如何使用 Python 编写查询?
- python - 切片字符串在末尾省略字母
- node.js - 如何在 React 中显示组件并在每次显示时更新其生命周期?
- python - 如何在不同的选项卡之间传递滑块的值?
- python - 删除 disutils 生成的 RPM 时出现问题
- javascript - 区分 jQuery UI sortable() 中的 drop 和 sort