Dokku domains:add <app> <domain> returns 发现不支持的 vhost 配置。禁用虚拟主机支持

Dokku domains:add <app> <domain> returns unsupported vhost config found. disabling vhost support

这是我的第一个站点,我尝试使用 Dokku 在 Digital Ocean 上部署 rails 应用程序。

这是 Digital Ocean 上托管的基本 Ubuntu VM 上的默认值 Dokku install

当我尝试 运行:

dokku domains:add myapp mydomain.com

我收到以下错误

=====> unsupported vhost config found. disabling vhost support
=====> config:set-norestart is deprecated as of v0.3.22
-----> Setting config vars
       NO_VHOST: 1
-----> VHOST support disabled, deleting four-heroes/VHOST
-----> Added mydomain.com to myapp

尽管有错误,但最后一行看起来可能有效。然而,当我 运行:

dokku domains myapp

我收到这条消息。

=====> unsupported vhost config found. disabling vhost support
=====> config:set-norestart is deprecated as of v0.3.22
-----> Setting config vars
       NO_VHOST: 1
=====> myapp Domain Names
cat: /home/dokku/myapp/VHOST: No such file or directory

除了 Postgresql 插件之外,这是默认的 Dokku 安装。该应用程序运行良好,我能够通过 ip.ad.dr.ess:port 组合访问它,并且我能够通过 SSH 连接到域 (ssh root@mydomain.com).

我不知道我哪里搞砸了。

欢迎提供任何帮助。

如果您没有在初始 setup of dokku 中填写 HOSTNAME 选项,您将 运行 陷入当前的问题。尚未创建 VHOST 文件导致当前错误。

为了解决这个问题,我们必须创建丢失的 VHOST 文件并填充您的域名。首先通过 SSH 进入您的 Droplet 并 运行 以下内容(根据您的权限,您可能需要 sudo 来创建和编辑 VHOST 文件)

cd /home/dokku
touch VHOST
chmod 0755 VHOST
# Use your editor of choice nano, vim etc. 
# to add your hostname to VHOST file, eg. mydomain.com

现在,对于每个应用程序,我们都需要触发 nginx.conf 文件的重建。为每个应用程序执行此操作 运行 dokku nginx:build-config myapp

注意:从 /home/dokku/myapp 中删除应用程序的目录并重新部署也会产生相同的效果,但需要您重新 link 其他容器,例如数据库插件。

如果一切顺利 运行ning dokku domains myapp 现在应该在您的终端中输出

=====> myapp Domain Names
myapp.mydomain.com

您现在应该能够使用 dokku domains 命令成功地为您的应用删除和添加域

this answer also for reference