Digital Ocean ドロップレットに Dokku をインストールしましたが、DNS レコードを設定する前にインストールしたため、Dokku は IP にインストールされました。DNS レコードを変更したので、 からサイトにアクセスできますsite.com
。以前に作成した Dokku コンテナーにsite.com:port
からアクセスできます。Dokku の設定を変更して、このようにアプリにアクセスするにはどうすればよいですか?appname.site.com
5 に答える
https://github.com/progrium/dokkuごと:
そのホストを指すドメインとワイルドカード ドメインを設定します。/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 の回答を拡張するには: これらの変更を適用するために、アプリを再作成 (破棄して再度作成) する必要はありません。ディレクトリ内に VHOST ファイルを手動で作成し/home/dokku/$APP/
(dokku ユーザーとして)、NO_VHOST 設定を削除し ( )、 80dokku config:unset $app NO_VHOST
に変更して ( )、アプリを再起動することができます ( )。DOKKU_NGINX_PORT
dokku config:set $app DOKKU_NGINX_PORT=80
dokku ps:restart $app
$ echo "example.com" > /home/dokku/VHOST