Digital OceanドロップレットにDokkuをインストールしましたが、DNSレコードを設定する前にインストールしたため、DokkuはIPにインストールされました。 DNSレコードを変更したので、site.com
からサイトにアクセスできます。以前に作成したDokkuコンテナにはsite.com:port
からアクセスできますが、Dokkuの設定を変更して、次のようにアプリにアクセスするにはどうすればよいですか-appname.site.com
あたり https://github.com/progrium/dokk :
そのホストを指すドメインとワイルドカードドメインを設定します。/home/dokku/VHOSTがこのドメインに設定されていることを確認してください。デフォルトでは、ホストが持つホスト名に設定されています。このファイルは、ホスト名がDig(Dig + short $(hostname -f))によって解決できる場合にのみ作成されます。それ以外の場合は、ファイルを手動で作成し、優先ドメインに設定する必要があります。アプリをプッシュしたときにこのファイルがまだ存在しない場合、dokkuはポート番号を使用してアプリを公開します(つまり、 http://example.com:49154 -不足しているサブドメインに注意してください)。
この問題を修正するには、最初に/ home/dokku/VHOSTファイルを更新し、ドメイン名を追加する必要があります。これにより、新しく生成されたデプロイメントが修正されますが、既存のアプリは/ home/dokkuディレクトリから次の方法で削除する必要があります。名前(/ home/dokku/foo、/ home/dokku/barなど)を再デプロイして、この変更を有効にします。これは、各Dokkuアプリケーションの/ home/dokku /パス内に個別のnginx.confがあり、これらが必要になるためです。書き直されます。
実際、アプリを破棄して再作成する必要はありません。最初、 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にも追加する必要がありますが、追加しません。したがって、手動で行う必要があります。次に、myappにアクセスする(サブ)ドメインをdokkuに指示します。最後のコマンドは、myappのNO_VHOST変数をfalseに設定します。
拡張するには @ shirkey answer :これらの変更を適用するために、アプリを再作成(破棄して再作成)する必要はありません。 /home/dokku/$APP/
ディレクトリ内に(dokkuユーザーとして)手動でVHOSTファイルを作成し、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