import fs from 'node:fs'; let isDockerCached; function hasDockerEnv() { try { fs.statSync('/.dockerenv'); return true; } catch { return false; } } function hasDockerCGroup() { try { return fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker'); } catch { return false; } } export default function isDocker() { // TODO: Use `??=` when targeting Node.js 16. if (isDockerCached === undefined) { isDockerCached = hasDockerEnv() || hasDockerCGroup(); } return isDockerCached; }