vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
46 lines (45 loc) • 1.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDocker = isDocker;
const node_fs_1 = __importDefault(require("node:fs"));
const assertSetup_js_1 = require("./assertSetup.js");
(0, assertSetup_js_1.assertIsNotProductionRuntime)();
function isDocker() {
return hasContainerEnv() || isDockerContainer();
}
// Podman detection
// https://github.com/sindresorhus/is-inside-container/blob/7f0dc884bda6b368d89ec90e77f2bef3b87e6f09/index.js
function hasContainerEnv() {
try {
node_fs_1.default.statSync('/run/.containerenv');
return true;
}
catch {
return false;
}
}
// Docker detection
// https://github.com/sindresorhus/is-docker/blob/1cfd2b5bfa9fbd87d2b22e6f514e7d5cc60a794b/index.js
function isDockerContainer() {
return hasDockerEnv() || hasDockerCGroup();
}
function hasDockerEnv() {
try {
node_fs_1.default.statSync('/.dockerenv');
return true;
}
catch {
return false;
}
}
function hasDockerCGroup() {
try {
return node_fs_1.default.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');
}
catch {
return false;
}
}