Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.17 KB | None | 0 0
  1. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  2.  
  3. x11docker[562.62]: Image name: x11docker/xfce
  4. Image command: 'glxgears'
  5.  
  6. x11docker[562.65]:
  7. x11docker version: 5.7.0-beta
  8. docker version: Docker version 18.09.6-ce, build 481bc77156
  9. Host system: Arch Linux
  10. Command: './x11docker' '--gpu' 'x11docker/xfce' 'glxgears' '--verbose'
  11. Parsed options: --gpu --verbose '' -- 'x11docker/xfce' 'glxgears'
  12.  
  13. x11docker WARNING: User thepoon is member of group docker.
  14. That allows unprivileged processes on host to gain root privileges.
  15.  
  16. x11docker note: Your system uses closed source NVIDIA driver.
  17. GPU support will work only with options --hostdisplay and --xorg.
  18. Consider to use free open source nouveau driver instead.
  19.  
  20. x11docker[563.15]: Xpra version: xpra v2.5.1-r22432
  21.  
  22. x11docker[563.15]: Dependency check for --xpra: 0
  23.  
  24. x11docker[563.15]: --xpra-xwayland: Closed source NVIDIA driver does not support Wayland.
  25.  
  26. x11docker[563.15]: --xpra-xwayland: weston not found.
  27. You can look for the package name of this command at:
  28. https://github.com/mviereck/x11docker/wiki/dependencies#table-of-all-packages
  29.  
  30. x11docker[563.16]: Dependency check for --xpra-xwayland: 1
  31.  
  32. x11docker[563.16]: --xpra-xwayland not possible: missing dependencies.
  33.  
  34. x11docker[563.16]: Dependency check for --hostdisplay: 0
  35.  
  36. x11docker[563.16]: Dependency check for --hostdisplay: 0
  37.  
  38. x11docker note: Using X server option --hostdisplay
  39.  
  40. x11docker WARNING: Option --gpu degrades container isolation.
  41. Container gains access to GPU hardware.
  42. This allows reading host window content (palinopsia leak)
  43. and GPU rootkits (compare proof of concept: jellyfish).
  44.  
  45. x11docker note: Option --gpu: To allow GPU acceleration with --hostdisplay,
  46. x11docker will allow trusted cookies. That enables option --clipboard, too.
  47.  
  48. x11docker note: Option --hostdisplay: To allow --hostdisplay with trusted cookies,
  49. x11docker must share host IPC namespace with container (option --hostipc)
  50. to allow shared memory for X extension MIT-SHM.
  51.  
  52. x11docker note: To allow protection against X security leaks,
  53. please install one or more of:
  54. xpra, Xephyr, nxagent, weston+Xwayland, kwin_wayland+Xwayland or Xnest,
  55. or run a second Xorg server with option --xorg.
  56.  
  57. x11docker WARNING: Option --hostdisplay with trusted cookies provides
  58. QUITE BAD CONTAINER ISOLATION !
  59. Keylogging and controlling host applications is possible!
  60. It is recommended to use another X server option like --xpra or --nxagent.
  61.  
  62. x11docker WARNING: Option --hostipc severely degrades
  63. container isolation. IPC namespace remapping is disabled.
  64.  
  65.  
  66. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log <==
  67.  
  68. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/stdout <==
  69.  
  70. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/stderr <==
  71.  
  72. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/journalctl.log <==
  73.  
  74. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xpraserver.log <==
  75.  
  76. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xpraclient.log <==
  77.  
  78. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xinit.log <==
  79.  
  80. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/compositor.log <==
  81.  
  82. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  83. x11docker[563.17]: Stored background pid 49687 of tailstdout
  84.  
  85. x11docker[563.17]: Waiting for file content in /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid
  86.  
  87. x11docker[563.18]: Stored background pid 49696 of tailstderr
  88.  
  89. x11docker[563.19]: Stored background pid 49707 of watchpidlist
  90.  
  91. x11docker[563.19]: Stored background pid 49711 of watchmessagefifo
  92.  
  93. x11docker[563.22]: Virtual screen size: 4480x1440
  94.  
  95. x11docker[563.24]: Physical screen size:
  96. Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 32767 x 32767
  97.  
  98. x11docker[563.25]: Detected host window manager: xfwm4
  99.  
  100. x11docker[563.28]: Waiting since 0s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  101.  
  102. x11docker[563.31]: Detected NVIDIA driver version 430.14 on host.
  103.  
  104. x11docker[563.32]: Found proprietary closed source NVIDIA driver installer
  105. /home/thepoon/.local/share/x11docker/NVIDIA-Linux-x86_64-430.14.run
  106.  
  107. x11docker WARNING: To install proprietary closed source NVIDIA driver,
  108. x11docker must give some capabilities to container that would be dropped
  109. otherwise for security reasons. Container security is reduced now.
  110. You would not have this issue with free nouveau driver on host.
  111.  
  112. x11docker[563.32]: New X environment:
  113. DISPLAY=:0 XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 X11DOCKER_CACHE=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1
  114.  
  115. x11docker[563.35]: Users and terminal:
  116. x11docker was started by: thepoon
  117. As host user serves (running X, storing cache): thepoon
  118. Container user will be: thepoon
  119. Container user password: x11docker
  120. Getting permission to run docker with: bash -c
  121. Running X and other user commands with: bash -c
  122. Terminal for password frontend: bash -c
  123. Running on console: no
  124. Running over SSH: no
  125.  
  126. x11docker[563.36]: Found tini binary: /usr/bin/docker-init
  127.  
  128. x11docker WARNING: Sharing device file: /dev/dri
  129.  
  130. x11docker WARNING: Sharing device file: /dev/nvidia0
  131.  
  132. x11docker[563.49]: Waiting since 0s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  133.  
  134. x11docker WARNING: Sharing device file: /dev/nvidiactl
  135.  
  136. x11docker WARNING: Sharing device file: /dev/nvidia-modeset
  137.  
  138. x11docker WARNING: Sharing device file: /dev/vga_arbiter
  139.  
  140. x11docker[563.59]: Generated docker command:
  141. docker run --tty --rm --detach \
  142. --name x11docker_X0_41a8d1_x11docker-xfce \
  143. --user 1000:100 \
  144. --env USER=thepoon \
  145. --userns host \
  146. --group-add 91 \
  147. --group-add 92 \
  148. --cap-drop ALL \
  149. --cap-add CHOWN \
  150. --cap-add DAC_OVERRIDE \
  151. --cap-add FOWNER \
  152. --cap-add SETGID \
  153. --cap-add SETUID \
  154. --security-opt no-new-privileges \
  155. --security-opt label=type:container_runtime_t \
  156. --volume '/usr/bin/docker-init':'/x11docker/tini':ro \
  157. --tmpfs /run --tmpfs /run/lock \
  158. --volume '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share':'/x11docker':rw \
  159. --volume '/dev/dri':'/dev/dri':rw \
  160. --device '/dev/dri':'/dev/dri':rw \
  161. --volume '/dev/nvidia0':'/dev/nvidia0':rw \
  162. --device '/dev/nvidia0':'/dev/nvidia0':rw \
  163. --volume '/dev/nvidiactl':'/dev/nvidiactl':rw \
  164. --device '/dev/nvidiactl':'/dev/nvidiactl':rw \
  165. --volume '/dev/nvidia-modeset':'/dev/nvidia-modeset':rw \
  166. --device '/dev/nvidia-modeset':'/dev/nvidia-modeset':rw \
  167. --volume '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  168. --device '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  169. --volume '/home/thepoon/.local/share/x11docker/NVIDIA-Linux-x86_64-430.14.run':'/x11docker/NVIDIA-430.14.run':ro \
  170. --volume '/tmp/.X11-unix/X0':'/X0':rw \
  171. --ipc host \
  172. --workdir '/tmp' \
  173. --entrypoint env \
  174. --env 'container=docker' \
  175. --env 'XAUTHORITY=/x11docker/Xclientcookie' \
  176. --env 'DISPLAY=:0' \
  177. -- x11docker/xfce /bin/sh - /x11docker/container.CMD.sh
  178.  
  179. x11docker[563.64]: Generated dockerrc:
  180. 1 #! /usr/bin/env bash
  181. 2 mkfile ()
  182. 3 {
  183. 4 : > "${1:-}" || return 1;
  184. 5 chown $Hostuser "${1:-}" || return 1;
  185. 6 chgrp $Hostusergid "${1:-}" || return 1;
  186. 7 chmod 644 "${1:-}" || return 1;
  187. 8 [ -n "${2:-}" ] && {
  188. 9 chmod ${2:-} "${1:-}" || return 1
  189. 10 };
  190. 11 return 0
  191. 12 }
  192. 13 rocknroll ()
  193. 14 {
  194. 15 [ -s "$Timetosaygoodbye" ] && return 1;
  195. 16 [ -e "$Timetosaygoodbye" ] || return 1;
  196. 17 return 0
  197. 18 }
  198. 19 checkpid ()
  199. 20 {
  200. 21 [ -e "/proc/${1:-NONSENSE}" ]
  201. 22 }
  202. 23 waitforfilecreation ()
  203. 24 {
  204. 25 local Zeit= Warten= Dauer= Count=;
  205. 26 Zeit=$(date +%s);
  206. 27 verbose -d "Waiting for file creation of ${1:-}";
  207. 28 case ${2:-} in
  208. 29 "")
  209. 30 Warten=15
  210. 31 ;;
  211. 32 infinity | inf)
  212. 33 Warten=32000
  213. 34 ;;
  214. 35 *)
  215. 36 Warten=${2:-}
  216. 37 ;;
  217. 38 esac;
  218. 39 while [ ! "$(find "${1:-}" 2>/dev/null)" ]; do
  219. 40 Count=$(( Count + 1 ));
  220. 41 Dauer=$(( $(date +%s) - $Zeit ));
  221. 42 sleep $(awk "BEGIN { print $Count * 0.1 }");
  222. 43 [ $Warten -lt $Dauer ] && {
  223. 44 warning "Failed to wait for file creation of
  224. 45 ${1:-}";
  225. 46 return 1
  226. 47 };
  227. 48 verbose "Waiting since ${Dauer}s for ${1:-} to be created, will wait up to $Warten seconds.";
  228. 49 rocknroll || {
  229. 50 verbose -d "Stopped waiting for ${1:-} due to terminating signal.";
  230. 51 return 1
  231. 52 };
  232. 53 done;
  233. 54 verbose "Found new created file $(ls ${1:-})";
  234. 55 return 0
  235. 56 }
  236. 57 askyesno ()
  237. 58 {
  238. 59 read -t60 -n1 -p "(timeout after 60s assuming no) [Y|n]" Choice;
  239. 60 [ "$?" = '0' ] && {
  240. 61 [[ "$Choice" == [YyJj]* ]] || [ -z "$Choice" ] && return 0
  241. 62 };
  242. 63 return 1
  243. 64 }
  244. 65 escapestring ()
  245. 66 {
  246. 67 echo "${1:-}" | LC_ALL=C sed -e 's/[^a-zA-Z0-9,._+@=:/-]/\\&/g; 1{$s/^$/""/}; 1!s/^/"/; $!s/$/"/'
  247. 68 }
  248. 69 rmcr ()
  249. 70 {
  250. 71 case "${1:-}" in
  251. 72 "")
  252. 73 sed "s/$(printf "\r")//g"
  253. 74 ;;
  254. 75 *)
  255. 76 sed -i "s/$(printf "\r")//g" "${1:-}"
  256. 77 ;;
  257. 78 esac
  258. 79 }
  259. 80 storepid ()
  260. 81 {
  261. 82 echo ${1:-} ${2:-} >> $Bgpidfile;
  262. 83 verbose -d "Stored background pid ${1:-} of ${2:-}" 2> /dev/null;
  263. 84 disown ${1:-} 2> /dev/null || :
  264. 85 }
  265. 86 Hostuser='thepoon'
  266. 87 Hostusergid='100'
  267. 88 Timetosaygoodbye='/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/timetosaygoodbye'
  268. 89 export Bgpidfile='/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/backgroundpids'
  269. 90
  270. 91 warning() {
  271. 92 echo "$*:WARNING" >>$Messagefile
  272. 93 }
  273. 94 note() {
  274. 95 echo "$*:NOTE" >>$Messagefile
  275. 96 }
  276. 97 verbose() {
  277. 98 echo "$*:VERBOSE" >>$Messagefile
  278. 99 }
  279. 100 debugnote() {
  280. 101 echo "$*:DEBUGNOTE" >>$Messagefile
  281. 102 }
  282. 103 error() {
  283. 104 echo "$*:ERROR" >>$Messagefile
  284. 105 exit 1
  285. 106 }
  286. 107 stdout() {
  287. 108 echo "$*:STDOUT" >>$Messagefile
  288. 109 }
  289. 110 Messagefile='/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/message.fifo'
  290. 111
  291. 112 verbose -d 'Running dockerrc'
  292. 113 Imagename="x11docker/xfce"
  293. 114 Imagecommand=" 'glxgears'"
  294. 115
  295. 116 # check whether docker daemon is running, get docker info
  296. 117 docker info >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/docker.info 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log || {
  297. 118 rmcr '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log'
  298. 119 error "Calling docker daemon failed.
  299. 120 Is docker daemon running at all?
  300. 121 Try to start docker daemon with: systemctl start docker
  301. 122 Last lines of log:
  302. 123 $(tail /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log)"
  303. 124 }
  304. 125
  305. 126 Runtime=$(grep 'Default Runtime' < '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/docker.info' | awk '{print $3}')
  306. 127 verbose -d "Found default runtime: $Runtime"
  307. 128 case $Runtime in
  308. 129 kata-runtime)
  309. 130 [ "$Runtime" != '' ] && {
  310. 131 warning 'Found default docker runtime kata-runtime.
  311. 132 Please run x11docker with --runtime=kata-runtime to avoid issues.'
  312. 133 }
  313. 134 ;;
  314. 135 nvidia)
  315. 136 [ "$Runtime" != '' ] && [ 'yes' = 'yes' ] && {
  316. 137 warning 'Option --gpu: Found default docker runtime nvidia.
  317. 138 Please run x11docker with --runtime=nvidia to avoid issues.'
  318. 139 }
  319. 140 ;;
  320. 141 esac
  321. 142 # refresh images.list for x11docker-gui
  322. 143 mkfile /home/thepoon/.cache/x11docker/x11docker-gui/images.list
  323. 144 docker images 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | grep -v REPOSITORY | awk '{print $1 ":" $2}' >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/images.list
  324. 145 rmcr /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/images.list
  325. 146 while read -r Line ; do
  326. 147 grep -q "<none>" <<<$Line || echo $Line >> /home/thepoon/.cache/x11docker/x11docker-gui/images.list
  327. 148 done < <(sort < /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/images.list)
  328. 149
  329. 150 Dockerpull=no
  330. 151 docker inspect x11docker/xfce >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log 2>&1 || {
  331. 152 echo 'Image x11docker/xfce not found locally.'
  332. 153 echo 'Do you want to pull it from docker hub?'
  333. 154 askyesno && Dockerpull=yes
  334. 155 }
  335. 156 [ "$Dockerpull" = 'yes' ] && {
  336. 157 note 'Pulling image x11docker/xfce from docker hub'
  337. 158 env DISPLAY=':0' DBUS_SESSION_BUS_ADDRESS='unix:path=/run/user/1000/bus' su 'thepoon' -c "notify-send 'x11docker: Pulling image x11docker/xfce from docker hub'" 2>/dev/null
  338. 159 docker pull x11docker/xfce 1>&2
  339. 160 }
  340. 161 docker inspect x11docker/xfce >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log 2>&1 || {
  341. 162 error 'Did not find image x11docker/xfce.
  342. 163 Please build image first or pull it from docker hub with:
  343. 164
  344. 165 docker pull x11docker/xfce
  345. 166
  346. 167 or run x11docker with option --pull=yes'
  347. 168 }
  348. 169 # check CMD
  349. 170 [ -z "$Imagecommand" ] && {
  350. 171 # extract image command from image if not given on cli
  351. 172 Imagecommand="$(docker inspect --format='{{.Config.Cmd}}' x11docker/xfce | rmcr)"
  352. 173 Imagecommand="${Imagecommand#[}"
  353. 174 Imagecommand="${Imagecommand%]}"
  354. 175 Imagecommand="${Imagecommand#/bin/sh -c }"
  355. 176 echo "$Imagecommand" | grep -q /x11docker/container.CMD.sh && error 'Recursion error: Found CMD /x11docker/container.CMD.sh in image.
  356. 177 Did you use docker commit with an x11docker container?
  357. 178 Please build new images with a Dockerfile instead of using docker commit,
  358. 179 or provide a different image command.'
  359. 180 }
  360. 181 # check USER
  361. 182 Imageuser=$(docker inspect --format '{{.Config.User}}' x11docker/xfce | rmcr)
  362. 183 [ "$Imageuser" ] && note "Found 'USER $Imageuser' in image.
  363. 184 If you want to run with user $Imageuser instead of host user thepoon,
  364. 185 than run with --user=RETAIN."
  365. 186 echo thepoon >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/container.user
  366. 187 Tini="/x11docker/tini --"
  367. 188 # check ENTRYPOINT
  368. 189 Entrypoint=$(docker inspect --format='{{.Config.Entrypoint}}' x11docker/xfce | rmcr)
  369. 190 Entrypoint=${Entrypoint#[}
  370. 191 Entrypoint=${Entrypoint#/bin/sh -c }
  371. 192 Entrypoint=${Entrypoint%]}
  372. 193 echo "$Entrypoint" | grep -qE 'tini|init|systemd' && {
  373. 194 note "There seems to be an init system in ENTRYPOINT of image:
  374. 195 $Entrypoint
  375. 196 x11docker will run this instead of tini from host.
  376. 197 You can disable this ENTRYPOINT with option --no-entrypoint."
  377. 198 Tini=
  378. 199 }
  379. 200
  380. 201 [ -z "$Imagecommand$Entrypoint" ] && error 'No image command specified and no CMD or ENTRYPOINT found in image.' && exit 1
  381. 202
  382. 203 # create container.CMD.sh (shared with container and given as image command to docker run)
  383. 204 { echo '#! /bin/sh'
  384. 205 echo '# created startscript for docker run: container.CMD.sh'
  385. 206 echo '# runs as unprivileged user in container'
  386. 207 echo 'calculate() {'
  387. 208 echo ' LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"'
  388. 209 echo '}'
  389. 210 echo '
  390. 211 warning() {
  391. 212 echo "$*:WARNING" >>$Messagefile
  392. 213 }
  393. 214 note() {
  394. 215 echo "$*:NOTE" >>$Messagefile
  395. 216 }
  396. 217 verbose() {
  397. 218 echo "$*:VERBOSE" >>$Messagefile
  398. 219 }
  399. 220 debugnote() {
  400. 221 echo "$*:DEBUGNOTE" >>$Messagefile
  401. 222 }
  402. 223 error() {
  403. 224 echo "$*:ERROR" >>$Messagefile
  404. 225 exit 1
  405. 226 }
  406. 227 stdout() {
  407. 228 echo "$*:STDOUT" >>$Messagefile
  408. 229 }'
  409. 230 echo 'Messagefile=/x11docker/message.fifo'
  410. 231 echo ''
  411. 232 echo '# wait for container setup script do be ready'
  412. 233 echo 'for Count in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50; do'
  413. 234 echo ' verbose "Waiting since ${Count}s for container root setup to be ready"'
  414. 235 echo ' [ -e /x11docker.setupready ] && break || sleep 1'
  415. 236 echo 'done'
  416. 237 echo ''
  417. 238 echo 'verbose -d "Running unprivileged user commands in container"'
  418. 239 echo ''
  419. 240 echo Imagecommand="\"$Imagecommand\""
  420. 241 echo Entrypoint="\"$Entrypoint\""
  421. 242 echo ''
  422. 243 echo 'verbose "Container system:'
  423. 244 echo '$(cat /etc/os-release 2>&1)"'
  424. 245 echo ''
  425. 246 } >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/container.CMD.sh
  426. 247 {
  427. 248 echo ''
  428. 249 echo '# x11docker variable settings'
  429. 250 echo 'Containeruser="$(cat /x11docker/container.user)"'
  430. 251 echo 'Containeruserhome="/fakehome/thepoon"'
  431. 252 echo 'export USER="$Containeruser"'
  432. 253 echo 'export HOME="$Containeruserhome"'
  433. 254 echo 'mkdir -p $Containeruserhome'
  434. 255 echo '# Copy files from /etc/skel into empty HOME'
  435. 256 echo '[ -d /etc/skel ] && [ "$(ls -A "/fakehome/thepoon" 2>/dev/null)" ] && {'
  436. 257 echo ' cp -n -R /etc/skel/. $Containeruserhome'
  437. 258 echo '}'
  438. 259 echo '[ -e /x11docker/pulsecookie ] && {'
  439. 260 echo mkdir -p "$Containeruserhome/.config/pulse"
  440. 261 echo cp "/x11docker/pulsecookie" "$Containeruserhome/.config/pulse/cookie"
  441. 262 echo '}'
  442. 263 echo '[ -e /tmp/.X11-unix/X0 ] || ln -s /X0 /tmp/.X11-unix'
  443. 264 echo 'Exec=exec'
  444. 265 echo 'export NO_AT_BRIDGE=1'
  445. 266 echo ''
  446. 267 echo "[ -e \"\$XDG_RUNTIME_DIR\" ] || {"
  447. 268 echo ' export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  448. 269 echo ' mkdir -m 700 -p $XDG_RUNTIME_DIR'
  449. 270 echo ' export XDG_RUNTIME_DIR'
  450. 271 echo '}'
  451. 272 echo ''
  452. 273 echo 'export XDG_SESSION_TYPE=x11'
  453. 274 echo ''
  454. 275 echo ''
  455. 276 echo '# xpra environment settings'
  456. 277 echo 'export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm'
  457. 278 echo ''
  458. 279 echo 'bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh'
  459. 280 echo 'export TERM=xterm'
  460. 281 echo '[ -e /x11docker.LANG ] && export LANG="$(cat /x11docker.LANG)"'
  461. 282 echo '[ -e "/usr/share/zoneinfo/Europe/Paris" ] || export TZ=UTC-02'
  462. 283 echo '[ "$(date -Ihours)" != "2019-05-22T23+02:00" ] && export TZ=UTC-02'
  463. 284 echo '[ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND'
  464. 285 echo '[ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND'
  465. 286 echo '# container environment (--env)'
  466. 287 echo 'export "container=docker"'
  467. 288 echo 'export "XAUTHORITY=/x11docker/Xclientcookie"'
  468. 289 echo 'export "DISPLAY=:0"'
  469. 290 echo ''
  470. 291 echo 'env >> /x11docker/environment'
  471. 292 echo 'verbose "Container environment:'
  472. 293 echo '$(env | sort)"'
  473. 294 echo 'verbose "Copy of environment stored in /x11docker/environment"'
  474. 295 echo ''
  475. 296 echo 'cd "$HOME"'
  476. 297 Workdir=$(docker inspect --format='{{.Config.WorkingDir}}' x11docker/xfce 2>>'/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log'| rmcr)
  477. 298 [ "$Workdir" ] && echo "[ -d \"$Workdir\" ] && cd \"$Workdir\" # WORKDIR in image"
  478. 299 echo ''
  479. 300 echo verbose -d "Running image command: $Tini \$Dbus $Entrypoint $Imagecommand"
  480. 301 echo "\$Exec $Tini \$Dbus $Entrypoint $Imagecommand >>/x11docker/stdout 2>>/x11docker/stderr"
  481. 302 echo '# Ready for docker run'
  482. 303 } >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/container.CMD.sh
  483. 304
  484. 305 nl -ba >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/x11docker.log < /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/container.CMD.sh
  485. 306
  486. 307 Windowmanager=""
  487. 308 Windowmanagercommand=""
  488. 309 Wmdockercommand="docker run --rm --detach \
  489. 310 --name x11docker_X0_41a8d1_x11docker-xfce_WM \
  490. 311 --user 1999:1999 \
  491. 312 --cap-drop=ALL --security-opt=no-new-privileges --security-opt label=type:container_runtime_t \
  492. 313 --volume '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie':'/x11docker/Xclientcookie':rw \
  493. 314 --volume '/tmp/.X11-unix/X0':'/tmp/.X11-unix/X0':rw \
  494. 315 --env 'XAUTHORITY=/x11docker/Xclientcookie' \
  495. 316 --env 'DISPLAY=:0'"
  496. 317 [ "$Windowmanager" = "container" ] && {
  497. 318 docker inspect "$(cut -d' ' -f1 <<<"$Windowmanagercommand")" >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log 2>&1 && {
  498. 319 Wmdockercommand="$Wmdockercommand \
  499. 320 -- $Windowmanagercommand"
  500. 321 verbose -d "Generated docker command for window manager:
  501. 322 $Wmdockercommand"
  502. 323 Wmcontainerid="$(eval $Wmdockercommand)"
  503. 324 [ "$Wmcontainerid" ] && {
  504. 325 debugnote "Window manager container: $Wmcontainerid"
  505. 326 for ((Count=1 ; Count<=10 ; Count++)); do
  506. 327 Pid1pid=$(docker inspect --format '{{.State.Pid}}' $Wmcontainerid 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | rmcr)
  507. 328 verbose -d "$Count. check for PID 1 of window manager container: $Pid1pid"
  508. 329 checkpid "$Pid1pid" && break
  509. 330 sleep 0.2
  510. 331 done
  511. 332 }
  512. 333 checkpid "$Pid1pid" && storepid "$Pid1pid" windowcontainerpid1
  513. 334 [ -z "$Wmcontainerid" ] && note "Option --wm: Failed to run window manager image: $Windowmanagercommand." && Windowmanager=host ||:
  514. 335 } || {
  515. 336 note "Option --wm: Did not find window manager image
  516. 337 $(cut -d' ' -f1 <<<"$Windowmanagercommand")
  517. 338 to provide a containerized window manager. Please run:
  518. 339 docker pull x11docker/openbox
  519. 340 If you want to use a host window manager instead and avoid this warning,
  520. 341 use option --wm=host or --wm=COMMAND
  521. 342 or provide a local image with e.g. --wm=x11docker/lxde
  522. 343 To run without a window manager: --wm=none or --desktop
  523. 344 Fallback: Will try to run a host window manager: xfwm4"
  524. 345 Windowmanager=host
  525. 346 }
  526. 347 }
  527. 348 [ "$Windowmanager" = "host" ] && {
  528. 349 command -v 'xfwm4' >/dev/null || note 'Did not find a host window manager.
  529. 350 Please pull image x11docker/openbox or provide one of:
  530. 351 amiwm blackbox cinnamon compiz ctwm enlightenment fluxbox flwm fvwm jwm kwin kwin_x11 lxsession mate-session mate-wm marco metacity notion olwm olvwm openbox ororobus pekwm sawfish twm wmaker w9wm xfwm4'
  531. 352 note 'Option --wm: Starting host window manager: xfwm4'
  532. 353 [ "$(id -u)" = '0' ] && su thepoon -c 'env DISPLAY=:0 XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 X11DOCKER_CACHE=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1 xfwm4 >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xinit.log 2>&1 & storepid $! windowmanager'
  533. 354 [ "$(id -u)" != '0' ] && env DISPLAY=:0 XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 X11DOCKER_CACHE=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1 xfwm4 >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xinit.log 2>&1 & storepid $! windowmanager
  534. 355 }
  535. 356 read Containerid < <(docker run --tty --rm --detach \
  536. 357 --name x11docker_X0_41a8d1_x11docker-xfce \
  537. 358 --user 1000:100 \
  538. 359 --env USER=thepoon \
  539. 360 --userns host \
  540. 361 --group-add 91 \
  541. 362 --group-add 92 \
  542. 363 --cap-drop ALL \
  543. 364 --cap-add CHOWN \
  544. 365 --cap-add DAC_OVERRIDE \
  545. 366 --cap-add FOWNER \
  546. 367 --cap-add SETGID \
  547. 368 --cap-add SETUID \
  548. 369 --security-opt no-new-privileges \
  549. 370 --security-opt label=type:container_runtime_t \
  550. 371 --volume '/usr/bin/docker-init':'/x11docker/tini':ro \
  551. 372 --tmpfs /run --tmpfs /run/lock \
  552. 373 --volume '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share':'/x11docker':rw \
  553. 374 --volume '/dev/dri':'/dev/dri':rw \
  554. 375 --device '/dev/dri':'/dev/dri':rw \
  555. 376 --volume '/dev/nvidia0':'/dev/nvidia0':rw \
  556. 377 --device '/dev/nvidia0':'/dev/nvidia0':rw \
  557. 378 --volume '/dev/nvidiactl':'/dev/nvidiactl':rw \
  558. 379 --device '/dev/nvidiactl':'/dev/nvidiactl':rw \
  559. 380 --volume '/dev/nvidia-modeset':'/dev/nvidia-modeset':rw \
  560. 381 --device '/dev/nvidia-modeset':'/dev/nvidia-modeset':rw \
  561. 382 --volume '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  562. 383 --device '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  563. 384 --volume '/home/thepoon/.local/share/x11docker/NVIDIA-Linux-x86_64-430.14.run':'/x11docker/NVIDIA-430.14.run':ro \
  564. 385 --volume '/tmp/.X11-unix/X0':'/X0':rw \
  565. 386 --ipc host \
  566. 387 --workdir '/tmp' \
  567. 388 --entrypoint env \
  568. 389 --env 'container=docker' \
  569. 390 --env 'XAUTHORITY=/x11docker/Xclientcookie' \
  570. 391 --env 'DISPLAY=:0' \
  571. 392 -- x11docker/xfce /bin/sh - /x11docker/container.CMD.sh 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | rmcr)
  572. 393
  573. 394 verbose -d "Container ID: $Containerid"
  574. 395 [ "$Containerid" ] || {
  575. 396 #rmcr '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log'
  576. 397 error "Startup of docker failed. Did not receive a container ID.
  577. 398
  578. 399 Last lines of container log:
  579. 400 $(tail /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log)"
  580. 401 }
  581. 402 echo $Containerid >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.id
  582. 403
  583. 404 # wait for container to be ready
  584. 405 for ((Count=1 ; Count<=20 ; Count++)); do
  585. 406 docker exec x11docker_X0_41a8d1_x11docker-xfce sh -c : 2>&1 | rmcr >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log && { verbose -d 'Container is up and running.' ; break ; } || verbose -d "Container not ready on $Count. attempt, trying again."
  586. 407 sleep 0.2
  587. 408 done
  588. 409 docker logs -f $Containerid 2>&1 | rmcr >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log &
  589. 410 for ((Count=1 ; Count<=10 ; Count++)); do
  590. 411 Pid1pid=$(docker inspect --format '{{.State.Pid}}' x11docker_X0_41a8d1_x11docker-xfce 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | rmcr)
  591. 412 verbose -d "$Count. check for PID 1: $Pid1pid"
  592. 413 checkpid "$Pid1pid" && break
  593. 414 sleep 0.2
  594. 415 done
  595. 416 echo $Pid1pid >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid
  596. 417 verbose -d "Host PID of container PID 1: $Pid1pid"
  597. 418
  598. 419 docker inspect --format '{{ .NetworkSettings.IPAddress }}' x11docker_X0_41a8d1_x11docker-xfce 2>>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | rmcr >> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.ip
  599. 420 verbose -d "Container IP: $(cat /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.ip)"
  600. 421
  601. 422 Failure="$(cat /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log | rmcr | grep -v grep | grep -E 'Error response from daemon|OCI runtime exec' ||:)"
  602. 423 [ "$Failure" ] && {
  603. 424 echo "$Failure" >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log
  604. 425 error "Got error message from docker daemon:
  605. 426 $Failure"
  606. 427 }
  607. 428
  608. 429 docker exec --tty x11docker_X0_41a8d1_x11docker-xfce sh -c 'cp /x11docker/containerrootrc /tmp/containerrootrc ; chmod 644 /tmp/containerrootrc' 2>&1 | rmcr >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log
  609. 430 docker exec --tty -u root x11docker_X0_41a8d1_x11docker-xfce /bin/sh /tmp/containerrootrc 2>&1 | rmcr >>/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log
  610. 431 exit 0
  611.  
  612. x11docker[563.65]: Generated containerrootrc:
  613. 1 #! /bin/sh
  614. 2 # set up docker container as root before ongoing in unprivileged container.CMD.sh
  615. 3 # commands in this script are executed as root in container
  616. 4
  617. 5 warning() {
  618. 6 echo "$*:WARNING" >>$Messagefile
  619. 7 }
  620. 8 note() {
  621. 9 echo "$*:NOTE" >>$Messagefile
  622. 10 }
  623. 11 verbose() {
  624. 12 echo "$*:VERBOSE" >>$Messagefile
  625. 13 }
  626. 14 debugnote() {
  627. 15 echo "$*:DEBUGNOTE" >>$Messagefile
  628. 16 }
  629. 17 error() {
  630. 18 echo "$*:ERROR" >>$Messagefile
  631. 19 exit 1
  632. 20 }
  633. 21 stdout() {
  634. 22 echo "$*:STDOUT" >>$Messagefile
  635. 23 }
  636. 24 Messagefile=/x11docker/message.fifo
  637. 25
  638. 26 verbose -d 'Running setup as root in container'
  639. 27 # check type of libc
  640. 28 ldd --version 2>&1 | grep -q 'musl libc' && Containerlibc='musl'
  641. 29 ldd --version 2>&1 | grep -q -E 'GLIBC|GNU libc' && Containerlibc='glibc'
  642. 30 verbose -d "Container libc: $Containerlibc"
  643. 31
  644. 32 # prepare X environment
  645. 33 # create some system dirs with needed permissions
  646. 34 mkdir -v -p /var/lib/dbus /var/run/dbus
  647. 35 mkdir -v -p -m 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  648. 36 chmod -c 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  649. 37 export DISPLAY=:0 XAUTHORITY=/x11docker/Xclientcookie
  650. 38 [ -e /X0 ] && ln -s /X0 /tmp/.X11-unix/X0
  651. 39 ls -l /X0
  652. 40 ls -l /tmp/.X11-unix/X0
  653. 41
  654. 42 # time zone
  655. 43 [ ! -d /usr/share/zoneinfo ] && [ "$Containerlibc" = "glibc" ] && {
  656. 44 mkdir -p /usr/share/zoneinfo/Europe
  657. 45 cp '/x11docker/timezone' '/usr/share/zoneinfo/Europe/Paris'
  658. 46 }
  659. 47 [ -e '/usr/share/zoneinfo/Europe/Paris' ] && ln -f -s '/usr/share/zoneinfo/Europe/Paris' /etc/localtime
  660. 48
  661. 49 Containersystem=$(. /etc/os-release; echo $ID)
  662. 50 verbose "Container system ID: $Containersystem"
  663. 51
  664. 52 # environment variables
  665. 53 export 'container=docker'
  666. 54 export 'XAUTHORITY=/x11docker/Xclientcookie'
  667. 55 export 'DISPLAY=:0'
  668. 56
  669. 57 # Check container user
  670. 58 Containeruser=$(cat /x11docker/container.user)
  671. 59
  672. 60 # create user entry in /etc/passwd (and delete possibly existing same uid)
  673. 61 cat /etc/passwd | grep -v ':1000:' > /tmp/passwd
  674. 62 # disable possible /etc/shadow passwords for other users
  675. 63 sed -i s%:x:%:-:% /tmp/passwd
  676. 64 echo 'thepoon:x:1000:100:thepoon,,,:/fakehome/thepoon:/bin/sh' >> /tmp/passwd
  677. 65 rm /etc/passwd
  678. 66 mv /tmp/passwd /etc/passwd || warning 'Unable to change /etc/passwd. That may be a seurity risk.'
  679. 67
  680. 68 # create password entry for container user in /etc/shadow
  681. 69 rm -v /etc/shadow || warning 'Cannot change /etc/shadow. That may be a security risk.'
  682. 70 echo "thepoon:sac19FwGGTx/A:17293:0:99999:7:::" > /etc/shadow
  683. 71 echo 'root:*:17219:0:99999:7:::' >> /etc/shadow
  684. 72
  685. 73
  686. 74 # create user group entry (and delete possibly existing same gid)
  687. 75 cat /etc/group | grep -v ':100:' > /tmp/group
  688. 76 echo users:x:100: >> /tmp/group
  689. 77 mv /tmp/group /etc/group
  690. 78
  691. 79 mkdir -v -m 777 /fakehome
  692. 80
  693. 81 # create /etc/sudoers, delete /etc/sudoers.d. Overwrite possible sudo setups in image.
  694. 82 [ -e /etc/sudoers.d ] && rm -v -R /etc/sudoers.d
  695. 83 [ -e /etc/sudoers ] && rm -v /etc/sudoers
  696. 84 echo '# /etc/sudoers created by x11docker' > /etc/sudoers
  697. 85 echo 'root ALL=(ALL) ALL' >> /etc/sudoers
  698. 86
  699. 87 # restrict PAM configuration of su and sudo
  700. 88 mkdir -p /etc/pam.d
  701. 89 [ -e /etc/pam.d/sudo ] && rm -v /etc/pam.d/sudo
  702. 90 case "$Containersystem" in
  703. 91 fedora)
  704. 92 echo '#%PAM-1.0' > /etc/pam.d/su
  705. 93 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su
  706. 94 echo 'account sufficient pam_succeed_if.so uid = 0 use_uid quiet' >> /etc/pam.d/su
  707. 95 echo 'session include system-auth' >> /etc/pam.d/su
  708. 96 ;;
  709. 97 *)
  710. 98 echo '#%PAM-1.0' > /etc/pam.d/su
  711. 99 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su # allow root to switch user without a password
  712. 100 echo '@include common-auth' >> /etc/pam.d/su
  713. 101 echo '@include common-account' >> /etc/pam.d/su
  714. 102 echo '@include common-session' >> /etc/pam.d/su
  715. 103 ;;
  716. 104 esac
  717. 105
  718. 106 [ -e '/fakehome/thepoon' ] || {
  719. 107 # only create HOME here if capability CHOWN is allowed.
  720. 108 :>/tmp/chowntestfile
  721. 109 chown $Containeruser /tmp/chowntestfile && {
  722. 110 mkdir -v -p '/fakehome/thepoon'
  723. 111 chown $Containeruser '/fakehome/thepoon'
  724. 112 }
  725. 113 rm /tmp/chowntestfile
  726. 114 }
  727. 115
  728. 116 # Set up container user groups
  729. 117 Groupname=
  730. 118 Groupid=
  731. 119 [ "$Groupname" ] || Groupname=$(cat /etc/group | grep "video" | cut -d: -f1)
  732. 120 [ "$Groupid" ] || Groupid=$(cat /etc/group | grep "video" | cut -d: -f3)
  733. 121 [ "$Groupname" ] && {
  734. 122 cat /etc/group | sed "s/^$Groupname.*/$Groupname:x:$Groupid:$(cat /etc/group | grep "$Groupname:.:" | cut -d: -f4 ),$Containeruser/" | sed 's/:,/:/' > /tmp/group
  735. 123 cat /etc/group | grep -q "$Groupname:.:" || echo $Groupname:x:$Groupid:$Containeruser >> /tmp/group
  736. 124 cp /tmp/group /etc/group
  737. 125 } || note 'Failed to add user to group: video'
  738. 126
  739. 127 Groupname=
  740. 128 Groupid=
  741. 129 [ "$Groupname" ] || Groupname=$(cat /etc/group | grep "audio" | cut -d: -f1)
  742. 130 [ "$Groupid" ] || Groupid=$(cat /etc/group | grep "audio" | cut -d: -f3)
  743. 131 [ "$Groupname" ] && {
  744. 132 cat /etc/group | sed "s/^$Groupname.*/$Groupname:x:$Groupid:$(cat /etc/group | grep "$Groupname:.:" | cut -d: -f4 ),$Containeruser/" | sed 's/:,/:/' > /tmp/group
  745. 133 cat /etc/group | grep -q "$Groupname:.:" || echo $Groupname:x:$Groupid:$Containeruser >> /tmp/group
  746. 134 cp /tmp/group /etc/group
  747. 135 } || note 'Failed to add user to group: audio'
  748. 136
  749. 137 Nvidiaversion=$(nvidia-settings -v 2>/dev/null | grep version | rev | cut -d' ' -f1 | rev)
  750. 138 [ "$Nvidiaversion" ] && note "Found NVIDIA driver $Nvidiaversion in image."
  751. 139 case "$Nvidiaversion" in
  752. 140 430.14) note 'NVIDIA driver version in image matches version on host. Skipping installation.' ;;
  753. 141 *)
  754. 142 Installationwillsucceed=maybe
  755. 143 case "$Containerlibc" in
  756. 144 musl) note 'Installing NVIDIA driver in container systems
  757. 145 based on musl libc like Alpine is not possible due to
  758. 146 proprietary closed source policy of NVIDIA corporation.'
  759. 147 Installationwillsucceed=no
  760. 148 ;;
  761. 149 esac
  762. 150 case $Containersystem in
  763. 151 opensuse)
  764. 152 note "Nvidia driver installation probably fails in $Containersystem.
  765. 153 You can try to install nvidia driver 430.14 in image yourself."
  766. 154 ;;
  767. 155 esac
  768. 156 [ "$Installationwillsucceed" = "maybe" ] && {
  769. 157 note 'Installing NVIDIA driver 430.14 in container.'
  770. 158 mkdir -m 1777 /tmp2
  771. 159 # provide fake tools to fool installer dependency check
  772. 160 ln -s /bin/true /tmp2/modprobe
  773. 161 ln -s /bin/true /tmp2/depmod
  774. 162 ln -s /bin/true /tmp2/lsmod
  775. 163 ln -s /bin/true /tmp2/rmmod
  776. 164 ln -s /bin/true /tmp2/ld
  777. 165 ln -s /bin/true /tmp2/objcopy
  778. 166 ln -s /bin/true /tmp2/insmod
  779. 167 Nvidiaoptions='--accept-license --no-runlevel-check --no-questions --no-backup --ui=none --no-kernel-module --no-nouveau-check'
  780. 168 env TMPDIR=/tmp2 PATH=/tmp2:$PATH sh /x11docker/NVIDIA-430.14.run -A | grep -q -- '--install-libglvnd' && Nvidiaoptions="$Nvidiaoptions --install-libglvnd"
  781. 169 env TMPDIR=/tmp2 PATH=/tmp2:$PATH sh /x11docker/NVIDIA-430.14.run -A | grep -q -- '--no-nvidia-modprobe' && Nvidiaoptions="$Nvidiaoptions --no-nvidia-modprobe"
  782. 170 env TMPDIR=/tmp2 PATH=/tmp2:$PATH sh /x11docker/NVIDIA-430.14.run -A | grep -q -- '--no-kernel-module-source' && Nvidiaoptions="$Nvidiaoptions --no-kernel-module-source"
  783. 171 df -h /tmp2
  784. 172 env TMPDIR=/tmp2 PATH=/tmp2:$PATH sh /x11docker/NVIDIA-430.14.run --tmpdir /tmp $Nvidiaoptions || note 'ERROR: Installation of NVIDIA driver failed.
  785. 173 Run with option --verbose to see installer output.'
  786. 174 rm -R /tmp2 && unset TMPDIR
  787. 175 } || note 'Skipping installation of /x11docker/NVIDIA-430.14.run'
  788. 176 ;;
  789. 177 esac
  790. 178
  791. 179
  792. 180 # disable getty in inittab
  793. 181 [ -e /etc/inittab ] && sed -i 's/.*getty/##getty disabled by x11docker## \0/' /etc/inittab
  794. 182
  795. 183
  796. 184 echo 'x11docker: Container root setup is ready'
  797. 185 :> /x11docker.setupready
  798. 186
  799.  
  800. x11docker[563.66]: Generated xinitrc:
  801. 1 #! /bin/sh
  802. 2 Timetosaygoodbye=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/timetosaygoodbye
  803. 3 Timetosaygoodbyefifo=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/timetosaygoodbye.fifo
  804. 4 Sharefolder=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share
  805. 5 Bgpidfile=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/backgroundpids
  806. 6 Winsubsystem=
  807. 7 Usemkfifo=yes
  808. 8 storepid ()
  809. 9 {
  810. 10 echo ${1:-} ${2:-} >> $Bgpidfile;
  811. 11 verbose -d "Stored background pid ${1:-} of ${2:-}" 2> /dev/null;
  812. 12 disown ${1:-} 2> /dev/null || :
  813. 13 }
  814. 14 rocknroll ()
  815. 15 {
  816. 16 [ -s "$Timetosaygoodbye" ] && return 1;
  817. 17 [ -e "$Timetosaygoodbye" ] || return 1;
  818. 18 return 0
  819. 19 }
  820. 20 waitfortheend ()
  821. 21 {
  822. 22 case $Usemkfifo in
  823. 23 yes)
  824. 24 while rocknroll; do
  825. 25 bash -c "read -n1 <&8" && saygoodbye timetosaygoodbyefifo || sleep 1;
  826. 26 done
  827. 27 ;;
  828. 28 no)
  829. 29 while rocknroll; do
  830. 30 sleep 2;
  831. 31 done
  832. 32 ;;
  833. 33 esac
  834. 34 }
  835. 35 saygoodbye ()
  836. 36 {
  837. 37 verbose -d "time to say goodbye ($*)";
  838. 38 [ -e "$Sharefolder" ] && {
  839. 39 echo timetosaygoodbye >> $Timetosaygoodbye;
  840. 40 echo timetosaygoodbye >> $Timetosaygoodbyefifo
  841. 41 }
  842. 42 }
  843. 43 rmcr ()
  844. 44 {
  845. 45 case "${1:-}" in
  846. 46 "")
  847. 47 sed "s/$(printf "\r")//g"
  848. 48 ;;
  849. 49 *)
  850. 50 sed -i "s/$(printf "\r")//g" "${1:-}"
  851. 51 ;;
  852. 52 esac
  853. 53 }
  854. 54 disable_xhost ()
  855. 55 {
  856. 56 local Line=;
  857. 57 command -v xhost > /dev/null || {
  858. 58 warning "Command 'xhost' not found.
  859. 59 Can not check for possibly allowed network access to X.
  860. 60 Please install 'xhost'.
  861. 61 $Wikipackages";
  862. 62 return 1
  863. 63 };
  864. 64 xhost 2>&1 | rmcr | tail -n +2 /dev/stdin | while read -r Line; do
  865. 65 verbose -d "xhost: Removing entry $Line";
  866. 66 xhost -$Line | rmcr;
  867. 67 done;
  868. 68 xhost - | rmcr;
  869. 69 [ "$(xhost 2>&1 | rmcr | wc -l)" -gt "1" ] && {
  870. 70 warning "Remaining xhost permissions found on display ${DISPLAY:-}
  871. 71 $(xhost 2>&1 | rmcr)";
  872. 72 return 1
  873. 73 };
  874. 74 xhost 2>&1 | rmcr | grep "access control disabled" && {
  875. 75 warning "Failed to restrict xhost permissions.
  876. 76 Access to display ${DISPLAY:-} is allowed for everyone.";
  877. 77 return 1
  878. 78 };
  879. 79 return 0
  880. 80 }
  881. 81
  882. 82 warning() {
  883. 83 echo "$*:WARNING" >>$Messagefile
  884. 84 }
  885. 85 note() {
  886. 86 echo "$*:NOTE" >>$Messagefile
  887. 87 }
  888. 88 verbose() {
  889. 89 echo "$*:VERBOSE" >>$Messagefile
  890. 90 }
  891. 91 debugnote() {
  892. 92 echo "$*:DEBUGNOTE" >>$Messagefile
  893. 93 }
  894. 94 error() {
  895. 95 echo "$*:ERROR" >>$Messagefile
  896. 96 exit 1
  897. 97 }
  898. 98 stdout() {
  899. 99 echo "$*:STDOUT" >>$Messagefile
  900. 100 }
  901. 101 Messagefile=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/message.fifo
  902. 102
  903. 103 export PATH='/home/thepoon/.gem/ruby/2.5.0/bin:/home/thepoon/.gem/ruby/2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/games:/usr/local/bin:/usr/sbin:/sbin'
  904. 104 verbose -d 'Running xinitrc'
  905. 105 export DISPLAY=:0 XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 X11DOCKER_CACHE=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1
  906. 106 # background color
  907. 107 # create new XAUTHORITY cookies
  908. 108 cd /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share
  909. 109 :> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  910. 110 export XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/Xauthority-
  911. 111 xhost | rmcr | grep -q 'SI:localuser:thepoon' || { xhost +SI:localuser:thepoon | rmcr ; Xhostentry='yes' ; }
  912. 112 verbose 'Requesting trusted cookie from X server'
  913. 113 echo 'Requesting trusted cookie from X server'
  914. 114 xauth -v -i -f Xclientcookie generate :0 . trusted timeout 3600 | rmcr
  915. 115 export XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  916. 116 [ -s '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie' ] || {
  917. 117 [ 'trusted' = 'untrusted' ] && note 'Could not create untrusted cookie.
  918. 118 Maybe your X server misses extension SECURITY.'
  919. 119 warning 'SECURITY RISK! Keylogging and remote host control
  920. 120 may be possible! Better avoid using option --hostdisplay,
  921. 121 rather use --xpra or --nxagent.'
  922. 122 cp /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/Xauthority- /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  923. 123 }
  924. 124 ls -l /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  925. 125 [ -s '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie' ] || {
  926. 126 # still no cookie? try to create one without extension security
  927. 127 verbose -d 'Failed to retrieve trusted cookie from X server. Will bake one myself.'
  928. 128 echo 'Failed to retrieve trusted cookie from X server. Will bake one myself.'
  929. 129 xauth -v -i -f Xclientcookie add :0 . 15480738e9792cbeb7786a35af411cf7 | rmcr
  930. 130 ls -l /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  931. 131 }
  932. 132 # create prepared cookie with localhost identification disabled by ffff, needed if X socket is shared. ffff means 'familiy wild'
  933. 133 Cookie="$(xauth -i -f Xclientcookie nlist | rmcr | sed -e 's/^..../ffff/')"
  934. 134 echo "$Cookie" | xauth -v -i -f Xclientcookie nmerge - | rmcr
  935. 135 cp /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/Xservercookie
  936. 136 [ -s '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie' ] || warning 'Cookie creation failed!'
  937. 137 verbose -d "Created cookie: $(xauth -f Xclientcookie list 2>&1 | rmcr)"
  938. 138 chmod 644 /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  939. 139 [ '$Xhostentry' = 'yes' ] && env XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/Xauthority- xhost -SI:localuser:thepoon | rmcr
  940. 140 export XAUTHORITY=/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  941. 141 [ 'yes' = 'no' ] || [ ! -s '/home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie' ] && unset XAUTHORITY && warning '--hostdisplay: X server :0 runs without cookie authentication.'
  942. 142 getscreensize() {
  943. 143 CurrentXaxis=$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f1 )
  944. 144 CurrentYaxis=$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f2 | cut -d+ -f1)
  945. 145 }
  946. 146 checkscreensize() {
  947. 147 getscreensize
  948. 148 [ "$Xaxis" = "$CurrentXaxis" ] || return 1
  949. 149 [ "$Yaxis" = "$CurrentYaxis" ] || return 1
  950. 150 return 0
  951. 151 }
  952. 152 getprimary() {
  953. 153 xrandr | grep -q primary || xrandr --output $(xrandr | grep ' connected' | head -n1 | cut -d' ' -f1) --primary
  954. 154 echo $(xrandr | grep primary | cut -d' ' -f1)
  955. 155 }
  956. 156 Output=$(getprimary)
  957. 157 verbose "Output of xrandr on :0
  958. 158 $(xrandr)"
  959. 159 touch /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/Xready
  960. 160 waitfortheend
  961.  
  962. x11docker[563.66]: Stored background pid 50250 of containershell
  963.  
  964.  
  965. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xinit.log <==
  966. Requesting trusted cookie from X server
  967. Ignoring locks on authority file Xclientcookie
  968. authorization id is 1633
  969. Ignoring locks and writing authority file Xclientcookie
  970. -rw------- 1 thepoon users 55 22 mai 23:46 /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/Xclientcookie
  971. Ignoring locks on authority file Xclientcookie
  972. 1 entries read in: 0 new, 1 replacement
  973. Ignoring locks and writing authority file Xclientcookie
  974.  
  975. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  976. x11docker[563.68]: Running xinitrc
  977.  
  978. x11docker[563.69]: Requesting trusted cookie from X server
  979.  
  980. x11docker[563.70]: Created cookie: #ffff#546865506f6f4e735043#:0 MIT-MAGIC-COOKIE-1 a60455456897a3f32d7e746c1f89b3e5
  981.  
  982. x11docker[563.77]: Waiting since 0s for --hostdisplay to be ready.
  983.  
  984. x11docker[563.77]: --hostdisplay is ready
  985.  
  986. x11docker[563.79]: Waiting since 0s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  987.  
  988. x11docker[563.81]: Output of xrandr on :0
  989. Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 32767 x 32767
  990. DP-0 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
  991. 2560x1440 59.95 + 144.00* 120.00 99.95 84.98 23.97
  992. DP-1 disconnected (normal left inverted right x axis y axis)
  993. HDMI-0 connected 1920x1080+0+360 (normal left inverted right x axis y axis) 477mm x 268mm
  994. 1920x1080 60.00*+
  995. 1680x1050 59.95
  996. 1600x1200 60.00
  997. 1440x900 59.89
  998. 1280x1024 60.02
  999. 1280x960 60.00
  1000. 1280x720 60.00
  1001. 1024x768 60.00
  1002. 800x600 60.32
  1003. 640x480 59.94
  1004. DP-2 disconnected (normal left inverted right x axis y axis)
  1005. DP-3 disconnected (normal left inverted right x axis y axis)
  1006. DP-4 disconnected (normal left inverted right x axis y axis)
  1007. DP-5 disconnected (normal left inverted right x axis y axis)
  1008. USB-C-0 disconnected (normal left inverted right x axis y axis)
  1009.  
  1010.  
  1011. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log <==
  1012. WARNING: bridge-nf-call-iptables is disabled
  1013. WARNING: bridge-nf-call-ip6tables is disabled
  1014.  
  1015. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  1016. x11docker[563.82]: Running dockerrc
  1017.  
  1018. x11docker[563.84]: Found default runtime: runc
  1019.  
  1020.  
  1021. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log <==
  1022. [
  1023. {
  1024. "Id": "sha256:cc8150a67b9bb331eea9dd00491c438d9b1bab42d7112fac00955f80a950dbe1",
  1025. "RepoTags": [
  1026. "x11docker/xfce:latest"
  1027. ],
  1028. "RepoDigests": [
  1029. "x11docker/xfce@sha256:0ffc5c1e8ef4e50cf2debbf818652d190aa0149051d2750f27e801d4c17d3707"
  1030. ],
  1031. "Parent": "",
  1032. "Comment": "",
  1033. "Created": "2019-04-14T20:15:37.339711713Z",
  1034. "Container": "b515e7cee1f8e2b825268b057030746622573bf180dcc9e78b0c3fb34224eee1",
  1035. "ContainerConfig": {
  1036. "Hostname": "b515e7cee1f8",
  1037. "Domainname": "",
  1038. "User": "",
  1039. "AttachStdin": false,
  1040. "AttachStdout": false,
  1041. "AttachStderr": false,
  1042. "Tty": false,
  1043. "OpenStdin": false,
  1044. "StdinOnce": false,
  1045. "Env": [
  1046. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1047. ],
  1048. "Cmd": [
  1049. "/bin/sh",
  1050. "-c",
  1051. "#(nop) ",
  1052. "CMD [\"startxfce4\"]"
  1053. ],
  1054. "ArgsEscaped": true,
  1055. "Image": "sha256:b98d6bc75405867833d548d374698699307eecb4048a0630ce09a890d60388bf",
  1056. "Volumes": null,
  1057. "WorkingDir": "",
  1058. "Entrypoint": null,
  1059. "OnBuild": null,
  1060. "Labels": {}
  1061. },
  1062. "DockerVersion": "18.03.1-ee-3",
  1063. "Author": "",
  1064. "Config": {
  1065. "Hostname": "",
  1066. "Domainname": "",
  1067. "User": "",
  1068. "AttachStdin": false,
  1069. "AttachStdout": false,
  1070. "AttachStderr": false,
  1071. "Tty": false,
  1072. "OpenStdin": false,
  1073. "StdinOnce": false,
  1074. "Env": [
  1075. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1076. ],
  1077. "Cmd": [
  1078. "startxfce4"
  1079. ],
  1080. "ArgsEscaped": true,
  1081. "Image": "sha256:b98d6bc75405867833d548d374698699307eecb4048a0630ce09a890d60388bf",
  1082. "Volumes": null,
  1083. "WorkingDir": "",
  1084. "Entrypoint": null,
  1085. "OnBuild": null,
  1086. "Labels": null
  1087. },
  1088. "Architecture": "amd64",
  1089. "Os": "linux",
  1090. "Size": 507305572,
  1091. "VirtualSize": 507305572,
  1092. "GraphDriver": {
  1093. "Data": {
  1094. "LowerDir": "/var/lib/docker/overlay2/6e114166032ea8a324b00709938d2e560519a7af56ea2df3f2b5f6883d426487/diff",
  1095. "MergedDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/merged",
  1096. "UpperDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/diff",
  1097. "WorkDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/work"
  1098. },
  1099. "Name": "overlay2"
  1100. },
  1101. "RootFS": {
  1102. "Type": "layers",
  1103. "Layers": [
  1104. "sha256:9bc98e9143764bc9472b1a4fa850d5f5b4a50b03979b8af8250bda553cf898d8",
  1105. "sha256:9a4e8cef3b33a3b605561bd01a5550f2b07a386838b35de1904e558b207eb8e1"
  1106. ]
  1107. },
  1108. "Metadata": {
  1109. "LastTagTime": "0001-01-01T00:00:00Z"
  1110. }
  1111. }
  1112. ]
  1113. [
  1114. {
  1115. "Id": "sha256:cc8150a67b9bb331eea9dd00491c438d9b1bab42d7112fac00955f80a950dbe1",
  1116. "RepoTags": [
  1117. "x11docker/xfce:latest"
  1118. ],
  1119. "RepoDigests": [
  1120. "x11docker/xfce@sha256:0ffc5c1e8ef4e50cf2debbf818652d190aa0149051d2750f27e801d4c17d3707"
  1121. ],
  1122. "Parent": "",
  1123. "Comment": "",
  1124. "Created": "2019-04-14T20:15:37.339711713Z",
  1125. "Container": "b515e7cee1f8e2b825268b057030746622573bf180dcc9e78b0c3fb34224eee1",
  1126. "ContainerConfig": {
  1127. "Hostname": "b515e7cee1f8",
  1128. "Domainname": "",
  1129. "User": "",
  1130. "AttachStdin": false,
  1131. "AttachStdout": false,
  1132. "AttachStderr": false,
  1133. "Tty": false,
  1134. "OpenStdin": false,
  1135. "StdinOnce": false,
  1136. "Env": [
  1137. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1138. ],
  1139. "Cmd": [
  1140. "/bin/sh",
  1141. "-c",
  1142. "#(nop) ",
  1143. "CMD [\"startxfce4\"]"
  1144. ],
  1145. "ArgsEscaped": true,
  1146. "Image": "sha256:b98d6bc75405867833d548d374698699307eecb4048a0630ce09a890d60388bf",
  1147. "Volumes": null,
  1148. "WorkingDir": "",
  1149. "Entrypoint": null,
  1150. "OnBuild": null,
  1151. "Labels": {}
  1152. },
  1153. "DockerVersion": "18.03.1-ee-3",
  1154. "Author": "",
  1155. "Config": {
  1156. "Hostname": "",
  1157. "Domainname": "",
  1158. "User": "",
  1159. "AttachStdin": false,
  1160. "AttachStdout": false,
  1161. "AttachStderr": false,
  1162. "Tty": false,
  1163. "OpenStdin": false,
  1164. "StdinOnce": false,
  1165. "Env": [
  1166. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1167. ],
  1168. "Cmd": [
  1169. "startxfce4"
  1170. ],
  1171. "ArgsEscaped": true,
  1172. "Image": "sha256:b98d6bc75405867833d548d374698699307eecb4048a0630ce09a890d60388bf",
  1173. "Volumes": null,
  1174. "WorkingDir": "",
  1175. "Entrypoint": null,
  1176. "OnBuild": null,
  1177. "Labels": null
  1178. },
  1179. "Architecture": "amd64",
  1180. "Os": "linux",
  1181. "Size": 507305572,
  1182. "VirtualSize": 507305572,
  1183. "GraphDriver": {
  1184. "Data": {
  1185. "LowerDir": "/var/lib/docker/overlay2/6e114166032ea8a324b00709938d2e560519a7af56ea2df3f2b5f6883d426487/diff",
  1186. "MergedDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/merged",
  1187. "UpperDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/diff",
  1188. "WorkDir": "/var/lib/docker/overlay2/f3ec9fdb477f913d8e370239851b2eac96fd677f66d7c903a54ffa021fa74c3a/work"
  1189. },
  1190. "Name": "overlay2"
  1191. },
  1192. "RootFS": {
  1193. "Type": "layers",
  1194. "Layers": [
  1195. "sha256:9bc98e9143764bc9472b1a4fa850d5f5b4a50b03979b8af8250bda553cf898d8",
  1196. "sha256:9a4e8cef3b33a3b605561bd01a5550f2b07a386838b35de1904e558b207eb8e1"
  1197. ]
  1198. },
  1199. "Metadata": {
  1200. "LastTagTime": "0001-01-01T00:00:00Z"
  1201. }
  1202. }
  1203. ]
  1204. 1 #! /bin/sh
  1205. 2 # created startscript for docker run: container.CMD.sh
  1206. 3 # runs as unprivileged user in container
  1207. 4 calculate() {
  1208. 5 LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"
  1209. 6 }
  1210. 7
  1211. 8 warning() {
  1212. 9 echo "$*:WARNING" >>$Messagefile
  1213. 10 }
  1214. 11 note() {
  1215. 12 echo "$*:NOTE" >>$Messagefile
  1216. 13 }
  1217. 14 verbose() {
  1218. 15 echo "$*:VERBOSE" >>$Messagefile
  1219. 16 }
  1220. 17 debugnote() {
  1221. 18 echo "$*:DEBUGNOTE" >>$Messagefile
  1222. 19 }
  1223. 20 error() {
  1224. 21 echo "$*:ERROR" >>$Messagefile
  1225. 22 exit 1
  1226. 23 }
  1227. 24 stdout() {
  1228. 25 echo "$*:STDOUT" >>$Messagefile
  1229. 26 }
  1230. 27 Messagefile=/x11docker/message.fifo
  1231. 28
  1232. 29 # wait for container setup script do be ready
  1233. 30 for Count in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50; do
  1234. 31 verbose "Waiting since ${Count}s for container root setup to be ready"
  1235. 32 [ -e /x11docker.setupready ] && break || sleep 1
  1236. 33 done
  1237. 34
  1238. 35 verbose -d "Running unprivileged user commands in container"
  1239. 36
  1240. 37 Imagecommand=" 'glxgears'"
  1241. 38 Entrypoint=""
  1242. 39
  1243. 40 verbose "Container system:
  1244. 41 $(cat /etc/os-release 2>&1)"
  1245. 42
  1246. 43
  1247. 44 # x11docker variable settings
  1248. 45 Containeruser="$(cat /x11docker/container.user)"
  1249. 46 Containeruserhome="/fakehome/thepoon"
  1250. 47 export USER="$Containeruser"
  1251. 48 export HOME="$Containeruserhome"
  1252. 49 mkdir -p $Containeruserhome
  1253. 50 # Copy files from /etc/skel into empty HOME
  1254. 51 [ -d /etc/skel ] && [ "$(ls -A "/fakehome/thepoon" 2>/dev/null)" ] && {
  1255. 52 cp -n -R /etc/skel/. $Containeruserhome
  1256. 53 }
  1257. 54 [ -e /x11docker/pulsecookie ] && {
  1258. 55 mkdir -p /.config/pulse
  1259. 56 cp /x11docker/pulsecookie /.config/pulse/cookie
  1260. 57 }
  1261. 58 [ -e /tmp/.X11-unix/X0 ] || ln -s /X0 /tmp/.X11-unix
  1262. 59 Exec=exec
  1263. 60 export NO_AT_BRIDGE=1
  1264. 61
  1265. 62 [ -e "$XDG_RUNTIME_DIR" ] || {
  1266. 63 export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR
  1267. 64 mkdir -m 700 -p $XDG_RUNTIME_DIR
  1268. 65 export XDG_RUNTIME_DIR
  1269. 66 }
  1270. 67
  1271. 68 export XDG_SESSION_TYPE=x11
  1272. 69
  1273. 70
  1274. 71 # xpra environment settings
  1275. 72 export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm
  1276. 73
  1277. 74 bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh
  1278. 75 export TERM=xterm
  1279. 76 [ -e /x11docker.LANG ] && export LANG="$(cat /x11docker.LANG)"
  1280. 77 [ -e "/usr/share/zoneinfo/Europe/Paris" ] || export TZ=UTC-02
  1281. 78 [ "$(date -Ihours)" != "2019-05-22T23+02:00" ] && export TZ=UTC-02
  1282. 79 [ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND
  1283. 80 [ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND
  1284. 81 # container environment (--env)
  1285. 82 export "container=docker"
  1286. 83 export "XAUTHORITY=/x11docker/Xclientcookie"
  1287. 84 export "DISPLAY=:0"
  1288. 85
  1289. 86 env >> /x11docker/environment
  1290. 87 verbose "Container environment:
  1291. 88 $(env | sort)"
  1292. 89 verbose "Copy of environment stored in /x11docker/environment"
  1293. 90
  1294. 91 cd "$HOME"
  1295. 92
  1296. 93 verbose -d Running image command: /x11docker/tini -- $Dbus 'glxgears'
  1297. 94 $Exec /x11docker/tini -- $Dbus 'glxgears' >>/x11docker/stdout 2>>/x11docker/stderr
  1298. 95 # Ready for docker run
  1299.  
  1300. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  1301. x11docker[564.20]: Waiting since 0s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  1302.  
  1303. x11docker[564.71]: Waiting since 1s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  1304.  
  1305. x11docker[565.31]: Waiting since 1s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  1306.  
  1307. x11docker[565.44]: Waiting since 1s for container root setup to be ready
  1308.  
  1309. x11docker[565.47]: Container ID: 1e355816ee118b55dfc699d52b0ca8eca55de273527c65887c84d44945ce240a
  1310.  
  1311. x11docker[565.71]: Container is up and running.
  1312.  
  1313. x11docker[565.74]: 1. check for PID 1: 50667
  1314.  
  1315. x11docker[565.75]: Host PID of container PID 1: 50667
  1316.  
  1317. x11docker[565.77]: Container IP: 172.17.0.2
  1318.  
  1319. x11docker[566.02]: Waiting since 2s for /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid to have content, will wait up to 32000 seconds.
  1320.  
  1321. x11docker[566.02]: Found file content in /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.pid1pid
  1322.  
  1323. x11docker[566.26]: Running setup as root in container
  1324.  
  1325. x11docker[566.28]: Container libc: glibc
  1326.  
  1327. x11docker[566.29]: Container system ID: debian
  1328.  
  1329. x11docker note: Installing NVIDIA driver 430.14 in container.
  1330.  
  1331. x11docker[566.44]: Waiting since 2s for container root setup to be ready
  1332.  
  1333. x11docker[567.44]: Waiting since 3s for container root setup to be ready
  1334.  
  1335. x11docker[568.44]: Waiting since 4s for container root setup to be ready
  1336.  
  1337. x11docker[569.44]: Waiting since 5s for container root setup to be ready
  1338.  
  1339. x11docker[570.44]: Waiting since 6s for container root setup to be ready
  1340.  
  1341. x11docker[571.44]: Waiting since 7s for container root setup to be ready
  1342.  
  1343. x11docker[572.44]: Waiting since 8s for container root setup to be ready
  1344.  
  1345. x11docker[573.45]: Waiting since 9s for container root setup to be ready
  1346.  
  1347. x11docker[574.45]: Waiting since 10s for container root setup to be ready
  1348.  
  1349. x11docker note: ERROR: Installation of NVIDIA driver failed.
  1350. Run with option --verbose to see installer output.
  1351.  
  1352.  
  1353. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/container.log <==
  1354. mkdir: created directory '/var/run/dbus'
  1355. mkdir: created directory '/tmp/.ICE-unix'
  1356. mkdir: created directory '/tmp/.X11-unix'
  1357. mkdir: created directory '/tmp/.font-unix'
  1358. srwxrwxrwx 1 root root 0 May 22 10:39 /X0
  1359. lrwxrwxrwx 1 root root 3 May 22 21:46 /tmp/.X11-unix/X0 -> /X0
  1360. removed '/etc/shadow'
  1361. mkdir: created directory '/fakehome'
  1362. chown: changing ownership of '/tmp/chowntestfile': Operation not permitted
  1363. Verifying archive integrity... OK
  1364. Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 430.14..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Extraction failed.
  1365.  
  1366. Signal caught, cleaning up
  1367. x11docker: Container root setup is ready
  1368.  
  1369. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  1370. x11docker[574.57]: Waiting for file creation of /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xtermready
  1371.  
  1372. x11docker[574.58]: Found new created file /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/xtermready
  1373.  
  1374. x11docker[575.45]: Waiting since 11s for container root setup to be ready
  1375.  
  1376. x11docker[575.46]: Running unprivileged user commands in container
  1377.  
  1378.  
  1379. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/share/stderr <==
  1380. libGL error: No matching fbConfigs or visuals found
  1381. libGL error: failed to load driver: swrast
  1382. X Error of failed request: BadValue (integer parameter out of range for operation)
  1383. Major opcode of failed request: 151 (GLX)
  1384. Minor opcode of failed request: 3 (X_GLXCreateContext)
  1385. Value in failed request: 0x0
  1386. Serial number of failed request: 39
  1387. Current serial number in output stream: 41
  1388.  
  1389. ==> /home/thepoon/.cache/x11docker/x11docker-xfce-41a8d1/message.log <==
  1390. x11docker[575.49]: Container system:
  1391. PRETTY_NAME="Debian GNU/Linux buster/sid"
  1392. NAME="Debian GNU/Linux"
  1393. ID=debian
  1394. HOME_URL="https://www.debian.org/"
  1395. SUPPORT_URL="https://www.debian.org/support"
  1396. BUG_REPORT_URL="https://bugs.debian.org/"
  1397.  
  1398. x11docker[575.54]: Container environment:
  1399. DISPLAY=:0
  1400. HOME=/fakehome/thepoon
  1401. HOSTNAME=1e355816ee11
  1402. MWNOCAPTURE=true
  1403. MWNO_RIT=true
  1404. MWWM=allwm
  1405. NO_AT_BRIDGE=1
  1406. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  1407. PWD=/tmp
  1408. QT_X11_NO_NATIVE_MENUBAR=1
  1409. SHELL=/bin/bash
  1410. TERM=xterm
  1411. UBUNTU_MENUPROXY=
  1412. USER=thepoon
  1413. XAUTHORITY=/x11docker/Xclientcookie
  1414. XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR
  1415. XDG_SESSION_TYPE=x11
  1416. container=docker
  1417.  
  1418. x11docker[575.55]: Copy of environment stored in /x11docker/environment
  1419.  
  1420. x11docker[575.57]: Running image command: /x11docker/tini -- glxgears
  1421.  
  1422. x11docker[575.58]: Stored background pid 50667 of containerpid1
  1423.  
  1424. x11docker[575.60]: Watching pids:
  1425.  
  1426.  
  1427. x11docker[575.60]: time to say goodbye (watchpidlist 50667)
  1428.  
  1429. x11docker[575.60]: time to say goodbye (watchpidlist)
  1430.  
  1431. x11docker[575.60]: time to say goodbye (main)
  1432.  
  1433. x11docker[575.60]: Terminating x11docker.
  1434.  
  1435. x11docker[575.61]: time to say goodbye (timetosaygoodbyefifo)
  1436.  
  1437. x11docker[575.66]: Terminating 50250 (containershell) x11docker: 50250 pts/1 00:00:00 bash
  1438.  
  1439. x11docker[575.83]: time to say goodbye (finish)
  1440.  
  1441. x11docker[575.83]: Exitcode 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement