RuntimeEnvironment (Apache Commons Lang 3.20.0 API)
Description: declaration: package: org.apache.commons.lang3, class: RuntimeEnvironment

# 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 Summary

  Constructors
  Constructor
  Description
  `RuntimeEnvironment()`
  Deprecated.
  Will be removed in 4.0.0.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Boolean`
  `inContainer()`
  Tests whether we are running in a container like Docker or Podman.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### RuntimeEnvironment

    @Deprecated public RuntimeEnvironment()
    Deprecated.
    Will be removed in 4.0.0.
    Constructs a new instance.

- ## 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:
      - SystemD virt.c