1234567891011121314151617181920212223242526272829 |
- 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;
- }
|