Class RuntimeEnvironment

java.lang.Object
org.apache.commons.lang3.RuntimeEnvironment

public class RuntimeEnvironment extends Object
Helps query the runtime environment.
Since:
3.15.0
  • Constructor Details

  • Method Details

    • inContainer

      public static Boolean inContainer()
      Tests whether we are running in a container like Docker or Podman.

      The following may change if we find better detection logic.

      We roughly follow the logic in SystemD:

      https://github.com/systemd/systemd/blob/0747e3b60eb4496ee122066c844210ce818d76d9/src/basic/virt.c#L692

      We check the `container` environment variable of process 1:

      1. If the variable is empty, we return false. This includes the case, where the container developer wants to hide the fact that the application runs in a container.
      2. If the variable is not empty, we return true.
      3. If the variable is absent, we continue.
      4. We check files in the container. According to SystemD:/
        1. /.dockerenv is used by Docker.
        2. /run/.containerenv is used by PodMan.
      Returns:
      whether we are running in a container like Docker or Podman. Never null.
      See Also: