uhttpdを実行し、静的HTMLページを提供するDockerコンテナがあります。コンテナのホスト名を静的HTMLページに動的に挿入するには?容器はできるだけ軽くなってほしいです。
答え1
ホスト名を含む静的HTMLページを生成するためにコンテナの起動の一部としてコマンドを使用するのはどうですか?
$ cat <<EOF > /path/to/var/www/hostname.html
<html>
<body>
<p>hostname is: $(hostname)</p>
</body>
</html>
EOF
/etc/rc.d/rc.local
SysVスタイルの起動スクリプトを使用していると仮定すると、このコマンドを配置できます。 systemdを使用していても同じことができますが、サービスを有効にする必要があります。
$ sudo service rc-local start
これにより、起動するたびに実行されるように実行中としてマークされます。
$ sudo systemctl enable rc-local
Upstartなどの他のツールを使用している場合は、同じ方法を使用して上記と同じことを実行できます。
引用する
答え2
PHPを使用している場合は、次のコードを使用できます。
echo system('hostname')
echo
これはコマンドの出力になりますhostname
。system
セキュリティ上の理由から、多くの共有ホストではこのコマンドは無効になっています。
または、次のものを使用できます。
echo gethostname();
-または-
echo php_uname('n')
答え3
静的ページの場合、最も簡単な方法は、テンプレートからサービスページを生成し、プレースホルダをコマンドが提供するものにhostname
置き換えることです。イメージのエントリポイントでこのコードを実行してください。
答え4
以下は、ホスト名を示すWebページです。これは、ネットワークプログラミングの「インライン」機能を示しています。
<html>
<body>
<?php echo gethostname(); ?>
</body>
</html>