Spaces:
Paused
Paused
| 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; | |
| } | |