isDocker.js 484 B

1234567891011121314151617181920212223
  1. const memoize = require('./memoize');
  2. const contain = require('./contain');
  3. const fs = require('fs');
  4. exports = memoize(function() {
  5. try {
  6. fs.statSync('/.dockerenv');
  7. return true;
  8. } catch (e) {}
  9. return hasDocker('/proc/self/cgroup') || hasDocker('/proc/self/mountinfo');
  10. });
  11. function hasDocker(file) {
  12. try {
  13. return contain(fs.readFileSync(file, 'utf8'), 'docker');
  14. } catch (e) {
  15. return false;
  16. }
  17. }
  18. module.exports = exports;