実行環境がDockerコンテナ上か普通のLinuxかを判別する
いちいちdockerコンテナを作るのが面倒なので普通のLinuxでさくさくデバッグ実行したいこともある。
環境変数ファイルを確認する[編集 | ソースを編集]
dockerコンテナではルート直下に「.dockerenv」という環境変数を格納したファイルが作られます。 このファイルの有無を調べることで実行環境を判別することができます。
シェルスクリプトでの例:
if [ -f /.dockerenv ]; then
echo "Running inside Docker container"
else
echo "Running on a regular Linux environment"
fi
備考[編集 | ソースを編集]
他のプログラミング言語でも.dockerenvファイルの有無を調べるだけですが、WindowsやMacという場合もあると思うので「そもそも実行環境がLinuxかどうか」もあわせて調べたほうが良いと思います。
C#での例:
if (OperatingSystem.IsLinux() && File.Exists("/.dockerenv"))
{
Console.WriteLine("Running inside Docker container");
}
else
{
Console.WriteLine("Running on a regular Linux environment");
}