You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
431 B
23 lines
431 B
import fs from 'node:fs'; |
|
import isDocker from 'is-docker'; |
|
|
|
let cachedResult; |
|
|
|
// Podman detection |
|
const hasContainerEnv = () => { |
|
try { |
|
fs.statSync('/run/.containerenv'); |
|
return true; |
|
} catch { |
|
return false; |
|
} |
|
}; |
|
|
|
export default function isInsideContainer() { |
|
// TODO: Use `??=` when targeting Node.js 16. |
|
if (cachedResult === undefined) { |
|
cachedResult = hasContainerEnv() || isDocker(); |
|
} |
|
|
|
return cachedResult; |
|
}
|
|
|