container.h 804 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (C) 2019 Paul Spooren <mail@aparcar.de>
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU Lesser General Public License version 2.1
  6. * as published by the Free Software Foundation
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. #ifndef __CONTAINER_H
  14. #define __CONTAINER_H
  15. #include <stdlib.h>
  16. #include <stdbool.h>
  17. #include <sys/stat.h>
  18. static inline bool is_container() {
  19. struct stat s;
  20. int r = stat("/.dockerenv", &s);
  21. int pv_r = stat("/pantavisor", &s);
  22. return !!getenv("container") || r == 0 || pv_r == 0;
  23. }
  24. #endif