diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index 7f52b5a483..44168b4dc1 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -120,8 +120,9 @@ begin # Unset HOMEBREW_HELP to avoid confusing the tap with_env HOMEBREW_HELP: nil do tap_commands = [] - cgroup = Utils.popen_read("cat", "/proc/1/cgroup") - if %w[azpl_job actions_job docker garden kubepods].none? { |container| cgroup.include?(container) } + if File.exist?("/.dockerenv") || + ((cgroup = Utils.popen_read("cat", "/proc/1/cgroup").presence) && + %w[azpl_job actions_job docker garden kubepods].none? { |type| cgroup.include?(type) }) brew_uid = HOMEBREW_BREW_FILE.stat.uid tap_commands += %W[/usr/bin/sudo -u ##{brew_uid}] if Process.uid.zero? && !brew_uid.zero? end diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index cbe08846a2..e3012ea78d 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -197,6 +197,7 @@ check-run-command-as-root() { [[ "$(id -u)" == 0 ]] || return # Allow Azure Pipelines/GitHub Actions/Docker/Concourse/Kubernetes to do everything as root (as it's normal there) + [[ -f /.dockerenv ]] && return [[ -f /proc/1/cgroup ]] && grep -E "azpl_job|actions_job|docker|garden|kubepods" -q /proc/1/cgroup && return # Homebrew Services may need `sudo` for system-wide daemons.