Dokku安装后更改设置

我在我的数字海洋液滴上安装了Dokku,但是在设置我的dnslogging之前做了Dokku,所以Dokku安装在IP上。 现在我改变了我的DNSlogging,所以网站可以通过site.com访问。 我可以通过site.com:port访问我以前创build的Dokku容器,我怎样才能更改Dokku设置来访问我的应用程序 – appname.site.com

根据https://github.com/progrium/dokku

设置指向该主机的域和通配符域。 确保/ home / dokku / VHOST设置为该域。 默认情况下,它被设置为主机的任何主机名。 这个文件只有在主机名可以通过dig(dig + short $(hostname -f))parsing时才会被创build。 否则,您必须手动创build文件并将其设置为您的首选域。 如果这个文件仍然不存在,当你推动你的应用程序,dokku将发布应用程序的端口号(即http://example.com:49154 – 注意缺less的子域)。

要解决这个问题,首先需要更新/ home / dokku / VHOST文件,添加域名 – 这将修复任何新生成的部署,但是现有的应用程序将需要从/ home / dokku目录中删除名称(/ home / dokku / foo,/ home / dokku / bar等),并重新部署此更改生效,被重写。

要扩展@shirkey答案 :您不需要重新创build(销毁并再次创build)应用程序以应用这些更改。 你可以在/home/dokku/$APP/目录(以dokku用户)手动创buildVHOST文件,然后删除NO_VHOST设置( dokku config:unset $app NO_VHOST )并将DOKKU_NGINX_PORT更改为80( dokku config:set $app DOKKU_NGINX_PORT=80 )并重新启动应用程序( dokku ps:restart $app )。

$ echo“example.com”> / home / dokku / VHOST

确实没有必要销毁和重新创build应用程序。 首先, dokku domains:report告诉你,如果全球VHOSTS已经启用或不。 如果没有,运行

 dokku domains:add-global yourdomain.tld echo yourdomain.tld | sudo tee -a /home/dokku/VHOST dokku domains:add myapp myapp.yourdomain.tld dokku domains:enable myapp 

其中的第一个将yourdomain.tld添加到/ home / dokku / HOSTNAME。 它也应该添加到/ home / dokku / VHOST,但它不。 所以需要手动完成。 然后告诉dokku什么(子)域你想访问myapp。 最后一个命令将myapp的NO_VHOSTvariables设置为false。