runc.template 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #!/usr/bin/env bash
  2. cat <<EOF
  3. {
  4. "ociVersion": "1.0.0-rc1",
  5. "platform": {
  6. "os": "linux",
  7. "arch": "$ARCH"
  8. },
  9. "process": {
  10. "args": ["sh"],
  11. "terminal": false,
  12. "tty": false,
  13. "user": {
  14. "uid": $CONTAINER_UID,
  15. "gid": $CONTAINER_GID
  16. },
  17. "env": [
  18. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  19. "TERM=xterm"
  20. ],
  21. "cwd": "/",
  22. "capabilities": [
  23. "CAP_AUDIT_WRITE",
  24. "CAP_KILL",
  25. "CAP_NET_BIND_SERVICE"
  26. ],
  27. "rlimits": [
  28. {
  29. "type": "RLIMIT_NOFILE",
  30. "hard": 1024,
  31. "soft": 1024
  32. }
  33. ],
  34. "noNewPrivileges": true
  35. },
  36. "root": {
  37. "path": "$FULL_CONTAINER_PATH",
  38. "readonly": true
  39. },
  40. "mounts": [
  41. {
  42. "type": "bind",
  43. "source": "$FULL_DATA_PATH",
  44. "destination": "/data",
  45. "options": [ "rbind", "rw", "noexec" ]
  46. },
  47. {
  48. "destination": "/proc",
  49. "type": "proc",
  50. "source": "proc"
  51. },
  52. {
  53. "destination": "/dev",
  54. "type": "tmpfs",
  55. "source": "tmpfs",
  56. "options": [
  57. "nosuid",
  58. "strictatime",
  59. "mode=755",
  60. "size=65536k"
  61. ]
  62. },
  63. {
  64. "destination": "/dev/pts",
  65. "type": "devpts",
  66. "source": "devpts",
  67. "options": [
  68. "nosuid",
  69. "noexec",
  70. "newinstance",
  71. "ptmxmode=0666",
  72. "mode=0620",
  73. "gid=5"
  74. ]
  75. },
  76. {
  77. "destination": "/dev/shm",
  78. "type": "tmpfs",
  79. "source": "shm",
  80. "options": [
  81. "nosuid",
  82. "noexec",
  83. "nodev",
  84. "mode=1777",
  85. "size=65536k"
  86. ]
  87. },
  88. {
  89. "destination": "/dev/mqueue",
  90. "type": "mqueue",
  91. "source": "mqueue",
  92. "options": [
  93. "nosuid",
  94. "noexec",
  95. "nodev"
  96. ]
  97. },
  98. {
  99. "destination": "/sys",
  100. "type": "sysfs",
  101. "source": "sysfs",
  102. "options": [
  103. "nosuid",
  104. "noexec",
  105. "nodev",
  106. "ro"
  107. ]
  108. },
  109. {
  110. "destination": "/sys/fs/cgroup",
  111. "type": "cgroup",
  112. "source": "cgroup",
  113. "options": [
  114. "nosuid",
  115. "noexec",
  116. "nodev",
  117. "relatime",
  118. "ro"
  119. ]
  120. }
  121. ],
  122. "hooks": {},
  123. "linux": {
  124. "resources": {
  125. "devices": [
  126. {
  127. "allow": false,
  128. "access": "rwm"
  129. }
  130. ]
  131. },
  132. "namespaces": [
  133. {
  134. "type": "pid"
  135. },
  136. {
  137. "type": "ipc"
  138. },
  139. {
  140. "type": "mount"
  141. }
  142. ],
  143. "maskedPaths": [
  144. "/proc/kcore",
  145. "/proc/latency_stats",
  146. "/proc/timer_stats",
  147. "/proc/sched_debug"
  148. ],
  149. "readonlyPaths": [
  150. "/proc/asound",
  151. "/proc/bus",
  152. "/proc/fs",
  153. "/proc/irq",
  154. "/proc/sys",
  155. "/proc/sysrq-trigger"
  156. ]
  157. },
  158. "solaris": {
  159. "cappedCPU": {},
  160. "cappedMemory": {}
  161. }
  162. }
  163. EOF