Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.77 KB | None | 0 0
  1. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/message.log <==
  2.  
  3. x11docker[606.44]: ps can watch root processes: yes
  4.  
  5. x11docker[606.48]: Image name: erichough/kodi
  6. Image command:
  7.  
  8. x11docker WARNING: User docker is member of group docker.
  9. That allows unprivileged processes on host to gain root privileges.
  10.  
  11. x11docker[607.29]:
  12. x11docker version: 6.0.0-beta
  13. docker version: Docker version 18.09.6, build
  14. Host system: void
  15. Command: '/bin/x11docker' '--wayland' '--tty' '--gpu' '--alsa' '--homedir' '/home/docker' 'erichough/kodi'
  16. Parsed options: --wayland --tty --gpu --alsa '' --homedir '/home/docker' -- 'erichough/kodi'
  17.  
  18. x11docker[607.30]: Dependency check for --tty: 0
  19.  
  20. x11docker[607.31]: Dependency check for --tty: 0
  21.  
  22. x11docker[607.32]: Dependency check for --tty: 0
  23.  
  24. x11docker[607.33]: Using X server option --tty
  25.  
  26. x11docker[607.34]: Option --tty: Setting LINES and COLUMNS to terminal size.
  27.  
  28. x11docker WARNING: Option --gpu degrades container isolation.
  29. Container gains access to GPU hardware.
  30. This allows reading host window content (palinopsia leak)
  31. and GPU rootkits (compare proof of concept: jellyfish).
  32.  
  33. x11docker[607.44]: Sharing directory /home/docker
  34. with container as its home directory /home/docker
  35.  
  36.  
  37. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/container.log <==
  38.  
  39. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/share/stdout <==
  40.  
  41. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/share/stderr <==
  42.  
  43. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/share/journalctl.log <==
  44.  
  45. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/xpraserver.log <==
  46.  
  47. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/xpraclient.log <==
  48.  
  49. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/xinit.log <==
  50.  
  51. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/compositor.log <==
  52.  
  53. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/message.log <==
  54. x11docker[607.45]: Stored background pid 3180 of tailstdout
  55.  
  56. x11docker[607.46]: Stored background pid 3188 of tailstderr
  57.  
  58. x11docker[607.46]: Waiting for file content in /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid
  59.  
  60. x11docker[607.51]: Stored background pid 3200 of watchpidlist
  61.  
  62. x11docker[607.52]: Stored background pid 3204 of watchmessagefifo
  63.  
  64. x11docker[607.53]: Virtual screen size:
  65.  
  66. x11docker[607.55]: Physical screen size:
  67.  
  68.  
  69. x11docker[607.59]: Waiting since 0s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  70.  
  71. x11docker[607.60]: Detected host window manager: (none)
  72.  
  73. x11docker WARNING: ALSA sound with option --alsa degrades container isolation.
  74. Shares device files in /dev/snd, container gains access to sound hardware.
  75. Container applications can catch audio output and microphone input.
  76.  
  77. x11docker[607.82]: Waiting since 0s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  78.  
  79. x11docker[607.87]: New X environment:
  80. DISPLAY= XAUTHORITY= WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland CLUTTER_BACKEND=wayland SDL_VIDEODRIVER=wayland ELM_DISPLAY=wl ELM_ACCEL=opengl ECORE_EVAS_ENGINE=wayland_egl X11DOCKER_CACHE=/home/docker/.cache/x11docker/erichough-kodi-931691
  81.  
  82. x11docker[608.04]: Users and terminal:
  83. x11docker was started by: docker
  84. As host user serves (running X, storing cache): docker
  85. Container user will be: docker
  86. Container user password: x11docker
  87. Getting permission to run docker with: bash -c
  88. Running X and other user commands with: bash -c
  89. Terminal for password frontend: bash -c
  90. Running on console: yes
  91. Running over SSH: no
  92.  
  93. x11docker[608.06]: Found tini binary: /usr/bin/docker-init
  94.  
  95. x11docker[608.16]: Waiting since 0s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  96.  
  97. x11docker[608.59]: Waiting since 1s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  98.  
  99. x11docker WARNING: Sharing device file: /dev/dri
  100.  
  101. x11docker WARNING: Sharing device file: /dev/vga_arbiter
  102.  
  103. x11docker WARNING: Sharing device file: /dev/snd
  104.  
  105. x11docker[609.12]: Waiting since 1s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  106.  
  107. x11docker[609.13]: Generated docker command:
  108. docker run --tty --rm --detach \
  109. --name x11docker_X100_931691_erichough-kodi \
  110. --user 1000:1000 \
  111. --env USER=docker \
  112. --userns host \
  113. --group-add 13 \
  114. --group-add 12 \
  115. --cap-drop ALL \
  116. --security-opt no-new-privileges \
  117. --security-opt label=type:container_runtime_t \
  118. --volume '/usr/bin/docker-init':'/x11docker/tini':ro \
  119. --tmpfs /run --tmpfs /run/lock \
  120. --volume '/home/docker/.cache/x11docker/erichough-kodi-931691/share':'/x11docker':rw \
  121. --volume '/home/docker':'/home/docker':rw \
  122. --volume '/dev/dri':'/dev/dri':rw \
  123. --device '/dev/dri':'/dev/dri':rw \
  124. --volume '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  125. --device '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  126. --volume '/dev/snd':'/dev/snd':rw \
  127. --device '/dev/snd':'/dev/snd':rw \
  128. --volume '/run/user/1000/':'/':rw \
  129. --workdir '/tmp' \
  130. --entrypoint env \
  131. --env 'container=docker' \
  132. --env 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR' \
  133. --env 'WAYLAND_DISPLAY=' \
  134. --env 'COLUMNS=128' \
  135. --env 'LINES=56' \
  136. -- erichough/kodi /bin/sh - /x11docker/container.CMD.sh
  137.  
  138. x11docker[609.34]: Generated dockerrc:
  139. 1 #! /usr/bin/env bash
  140. 2 mkfile ()
  141. 3 {
  142. 4 : > "${1:-}" || return 1;
  143. 5 chown $Hostuser "${1:-}" || return 1;
  144. 6 chgrp $Hostusergid "${1:-}" || return 1;
  145. 7 chmod 644 "${1:-}" || return 1;
  146. 8 [ -n "${2:-}" ] && {
  147. 9 chmod ${2:-} "${1:-}" || return 1
  148. 10 };
  149. 11 return 0
  150. 12 }
  151. 13 rocknroll ()
  152. 14 {
  153. 15 [ -s "$Timetosaygoodbye" ] && return 1;
  154. 16 [ -e "$Timetosaygoodbye" ] || return 1;
  155. 17 return 0
  156. 18 }
  157. 19 checkpid ()
  158. 20 {
  159. 21 [ -e "/proc/${1:-NONSENSE}" ]
  160. 22 }
  161. 23 waitforfilecreation ()
  162. 24 {
  163. 25 local Zeit= Warten= Dauer= Count=;
  164. 26 Zeit=$(date +%s);
  165. 27 verbose -d "Waiting for file creation of ${1:-}";
  166. 28 case ${2:-} in
  167. 29 "")
  168. 30 Warten=15
  169. 31 ;;
  170. 32 infinity | inf)
  171. 33 Warten=32000
  172. 34 ;;
  173. 35 *)
  174. 36 Warten=${2:-}
  175. 37 ;;
  176. 38 esac;
  177. 39 while [ ! "$(find "${1:-}" 2>/dev/null)" ]; do
  178. 40 Count=$(( Count + 1 ));
  179. 41 Dauer=$(( $(date +%s) - $Zeit ));
  180. 42 sleep $(awk "BEGIN { print $Count * 0.1 }");
  181. 43 [ $Warten -lt $Dauer ] && {
  182. 44 warning "Failed to wait for file creation of
  183. 45 ${1:-}";
  184. 46 return 1
  185. 47 };
  186. 48 verbose "Waiting since ${Dauer}s for ${1:-} to be created, will wait up to $Warten seconds.";
  187. 49 rocknroll || {
  188. 50 verbose -d "Stopped waiting for ${1:-} due to terminating signal.";
  189. 51 return 1
  190. 52 };
  191. 53 done;
  192. 54 verbose "Found new created file $(ls ${1:-})";
  193. 55 return 0
  194. 56 }
  195. 57 askyesno ()
  196. 58 {
  197. 59 read -t60 -n1 -p "(timeout after 60s assuming no) [Y|n]" Choice;
  198. 60 [ "$?" = '0' ] && {
  199. 61 [[ "$Choice" == [YyJj]* ]] || [ -z "$Choice" ] && return 0
  200. 62 };
  201. 63 return 1
  202. 64 }
  203. 65 escapestring ()
  204. 66 {
  205. 67 echo "${1:-}" | LC_ALL=C sed -e 's/[^a-zA-Z0-9,._+@=:/-]/\\&/g; 1{$s/^$/""/}; 1!s/^/"/; $!s/$/"/'
  206. 68 }
  207. 69 rmcr ()
  208. 70 {
  209. 71 case "${1:-}" in
  210. 72 "")
  211. 73 sed "s/$(printf "\r")//g"
  212. 74 ;;
  213. 75 *)
  214. 76 sed -i "s/$(printf "\r")//g" "${1:-}"
  215. 77 ;;
  216. 78 esac
  217. 79 }
  218. 80 storepid ()
  219. 81 {
  220. 82 echo ${1:-} ${2:-} >> $Bgpidfile;
  221. 83 verbose -d "Stored background pid ${1:-} of ${2:-}" 2> /dev/null;
  222. 84 disown ${1:-} 2> /dev/null || :
  223. 85 }
  224. 86 Hostuser='docker'
  225. 87 Hostusergid='1000'
  226. 88 Timetosaygoodbye='/home/docker/.cache/x11docker/erichough-kodi-931691/share/timetosaygoodbye'
  227. 89 export Bgpidfile='/home/docker/.cache/x11docker/erichough-kodi-931691/backgroundpids'
  228. 90 PATH='/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/games:/usr/local/bin:/usr/sbin:/sbin'
  229. 91
  230. 92 warning() {
  231. 93 echo "$*:WARNING" >>$Messagefile
  232. 94 }
  233. 95 note() {
  234. 96 echo "$*:NOTE" >>$Messagefile
  235. 97 }
  236. 98 verbose() {
  237. 99 echo "$*:VERBOSE" >>$Messagefile
  238. 100 }
  239. 101 debugnote() {
  240. 102 echo "$*:DEBUGNOTE" >>$Messagefile
  241. 103 }
  242. 104 error() {
  243. 105 echo "$*:ERROR" >>$Messagefile
  244. 106 exit 1
  245. 107 }
  246. 108 stdout() {
  247. 109 echo "$*:STDOUT" >>$Messagefile
  248. 110 }
  249. 111 Messagefile='/home/docker/.cache/x11docker/erichough-kodi-931691/share/message.fifo'
  250. 112
  251. 113 verbose -d 'Running dockerrc'
  252. 114 Imagename="erichough/kodi"
  253. 115 Imagecommand=""
  254. 116
  255. 117 # check whether docker daemon is running, get docker info
  256. 118 docker info >>/home/docker/.cache/x11docker/erichough-kodi-931691/docker.info 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log || {
  257. 119 error "Calling docker daemon failed.
  258. 120 Is docker daemon running at all?
  259. 121 Try to start docker daemon with: systemctl start docker
  260. 122 Last lines of log:
  261. 123 $(rmcr < '/home/docker/.cache/x11docker/erichough-kodi-931691/container.log' | tail)"
  262. 124 }
  263. 125
  264. 126 Runtime=$(grep 'Default Runtime' < '/home/docker/.cache/x11docker/erichough-kodi-931691/docker.info' | awk '{print $3}')
  265. 127 verbose -d "Found default runtime: $Runtime"
  266. 128 case $Runtime in
  267. 129 kata-runtime)
  268. 130 [ "$Runtime" != '' ] && {
  269. 131 warning 'Found default docker runtime kata-runtime.
  270. 132 Please run x11docker with --runtime=kata-runtime to avoid issues.'
  271. 133 }
  272. 134 ;;
  273. 135 nvidia)
  274. 136 [ "$Runtime" != '' ] && [ 'yes' = 'yes' ] && {
  275. 137 warning 'Option --gpu: Found default docker runtime nvidia.
  276. 138 Please run x11docker with --runtime=nvidia to avoid issues.'
  277. 139 }
  278. 140 ;;
  279. 141 esac
  280. 142 # refresh images.list for x11docker-gui
  281. 143 mkfile /home/docker/.cache/x11docker/x11docker-gui/images.list
  282. 144 docker images 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log | grep -v REPOSITORY | awk '{print $1 ":" $2}' >>/home/docker/.cache/x11docker/erichough-kodi-931691/images.list
  283. 145 rmcr /home/docker/.cache/x11docker/erichough-kodi-931691/images.list
  284. 146 while read -r Line ; do
  285. 147 grep -q "<none>" <<<$Line || echo $Line >> /home/docker/.cache/x11docker/x11docker-gui/images.list
  286. 148 done < <(sort < /home/docker/.cache/x11docker/erichough-kodi-931691/images.list)
  287. 149
  288. 150 Dockerpull=no
  289. 151 docker inspect erichough/kodi >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log 2>&1 || {
  290. 152 echo 'Image erichough/kodi not found locally.'
  291. 153 echo 'Do you want to pull it from docker hub?'
  292. 154 askyesno && Dockerpull=yes
  293. 155 }
  294. 156 [ "$Dockerpull" = 'yes' ] && {
  295. 157 note 'Pulling image erichough/kodi from docker hub'
  296. 158 env DISPLAY='' DBUS_SESSION_BUS_ADDRESS='' su 'docker' -c "notify-send 'x11docker: Pulling image erichough/kodi from docker hub'" 2>/dev/null
  297. 159 docker pull erichough/kodi 1>&2
  298. 160 }
  299. 161 docker inspect erichough/kodi >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log 2>&1 || {
  300. 162 error 'Did not find image erichough/kodi.
  301. 163 Please build image first or pull it from docker hub with:
  302. 164
  303. 165 docker pull erichough/kodi
  304. 166
  305. 167 or run x11docker with option --pull=yes'
  306. 168 }
  307. 169 # check CMD
  308. 170 [ -z "$Imagecommand" ] && {
  309. 171 # extract image command from image if not given on cli
  310. 172 Imagecommand="$(docker inspect --format='{{.Config.Cmd}}' erichough/kodi | rmcr)"
  311. 173 Imagecommand="${Imagecommand#[}"
  312. 174 Imagecommand="${Imagecommand%]}"
  313. 175 Imagecommand="${Imagecommand#/bin/sh -c }"
  314. 176 echo "$Imagecommand" | grep -q /x11docker/container.CMD.sh && error 'Recursion error: Found CMD /x11docker/container.CMD.sh in image.
  315. 177 Did you use docker commit with an x11docker container?
  316. 178 Please build new images with a Dockerfile instead of using docker commit,
  317. 179 or provide a different image command.'
  318. 180 }
  319. 181 # check USER
  320. 182 Imageuser=$(docker inspect --format '{{.Config.User}}' erichough/kodi | rmcr)
  321. 183 [ "$Imageuser" ] && note "Found 'USER $Imageuser' in image.
  322. 184 If you want to run with user $Imageuser instead of host user docker,
  323. 185 than run with --user=RETAIN."
  324. 186 echo docker >> /home/docker/.cache/x11docker/erichough-kodi-931691/share/container.user
  325. 187 Tini="/x11docker/tini --"
  326. 188 # check ENTRYPOINT
  327. 189 Entrypoint=$(docker inspect --format='{{.Config.Entrypoint}}' erichough/kodi | rmcr)
  328. 190 Entrypoint=${Entrypoint#[}
  329. 191 Entrypoint=${Entrypoint#/bin/sh -c }
  330. 192 Entrypoint=${Entrypoint%]}
  331. 193 echo "$Entrypoint" | grep -qE 'tini|init|systemd' && {
  332. 194 note "There seems to be an init system in ENTRYPOINT of image:
  333. 195 $Entrypoint
  334. 196 x11docker will run this instead of tini from host.
  335. 197 You can disable this ENTRYPOINT with option --no-entrypoint."
  336. 198 Tini=
  337. 199 }
  338. 200
  339. 201 [ -z "$Imagecommand$Entrypoint" ] && error 'No image command specified and no CMD or ENTRYPOINT found in image.' && exit 1
  340. 202
  341. 203 # create container.CMD.sh (shared with container and given as image command to docker run)
  342. 204 { echo '#! /bin/sh'
  343. 205 echo '# created startscript for docker run: container.CMD.sh'
  344. 206 echo '# runs as unprivileged user in container'
  345. 207 echo 'calculate() {'
  346. 208 echo ' LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"'
  347. 209 echo '}'
  348. 210 echo '
  349. 211 warning() {
  350. 212 echo "$*:WARNING" >>$Messagefile
  351. 213 }
  352. 214 note() {
  353. 215 echo "$*:NOTE" >>$Messagefile
  354. 216 }
  355. 217 verbose() {
  356. 218 echo "$*:VERBOSE" >>$Messagefile
  357. 219 }
  358. 220 debugnote() {
  359. 221 echo "$*:DEBUGNOTE" >>$Messagefile
  360. 222 }
  361. 223 error() {
  362. 224 echo "$*:ERROR" >>$Messagefile
  363. 225 exit 1
  364. 226 }
  365. 227 stdout() {
  366. 228 echo "$*:STDOUT" >>$Messagefile
  367. 229 }'
  368. 230 echo 'Messagefile=/x11docker/message.fifo'
  369. 231 echo ''
  370. 232 echo '# wait for container setup script do be ready'
  371. 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'
  372. 234 echo ' verbose "Waiting since ${Count}s for container root setup to be ready"'
  373. 235 echo ' [ -e /x11docker.setupready ] && break || sleep 1'
  374. 236 echo 'done'
  375. 237 echo ''
  376. 238 echo 'verbose -d "Running unprivileged user commands in container"'
  377. 239 echo ''
  378. 240 echo Imagecommand="\"$Imagecommand\""
  379. 241 echo Entrypoint="\"$Entrypoint\""
  380. 242 echo ''
  381. 243 echo 'verbose "Container system:'
  382. 244 echo '$(cat /etc/os-release 2>&1)"'
  383. 245 echo ''
  384. 246 } >> /home/docker/.cache/x11docker/erichough-kodi-931691/share/container.CMD.sh
  385. 247 {
  386. 248 echo ''
  387. 249 echo '# x11docker variable settings'
  388. 250 echo 'Containeruser="$(cat /x11docker/container.user)"'
  389. 251 echo 'Containeruserhome="/home/docker"'
  390. 252 echo 'export USER="$Containeruser"'
  391. 253 echo 'export HOME="$Containeruserhome"'
  392. 254 echo '# Copy files from /etc/skel into empty HOME'
  393. 255 echo '[ -d /etc/skel ] && [ "$(ls -A "/home/docker" 2>/dev/null)" ] && {'
  394. 256 echo ' cp -n -R /etc/skel/. $Containeruserhome'
  395. 257 echo '}'
  396. 258 echo '[ -e /x11docker/pulsecookie ] && {'
  397. 259 echo 'mkdir -p "$Containeruserhome/.config/pulse"'
  398. 260 echo 'cp "/x11docker/pulsecookie" "$Containeruserhome/.config/pulse/cookie"'
  399. 261 echo '}'
  400. 262 echo 'unset DISPLAY WAYLAND_DISPLAY XAUTHORITY'
  401. 263 echo 'command -v dbus-run-session >/dev/null && Dbus=dbus-run-session || note "Option --dbus: dbus seems to be not installed.
  402. 264 Cannot run a DBus user session. Please install dbus in image."'
  403. 265 echo 'Exec=exec'
  404. 266 echo 'export NO_AT_BRIDGE=1'
  405. 267 echo ''
  406. 268 echo "[ -e \"\$XDG_RUNTIME_DIR\" ] || {"
  407. 269 echo ' export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  408. 270 echo ' mkdir -m 700 -p $XDG_RUNTIME_DIR'
  409. 271 echo ' export XDG_RUNTIME_DIR'
  410. 272 echo '}'
  411. 273 echo ''
  412. 274 echo '# Wayland environment'
  413. 275 echo 'export WAYLAND_DISPLAY='
  414. 276 echo 'ln -s / $XDG_RUNTIME_DIR/'
  415. 277 echo ''
  416. 278 echo 'export XDG_SESSION_TYPE=wayland'
  417. 279 echo 'export GDK_BACKEND=wayland'
  418. 280 echo 'export QT_QPA_PLATFORM=wayland'
  419. 281 echo 'export CLUTTER_BACKEND=wayland'
  420. 282 echo 'export SDL_VIDEODRIVER=wayland'
  421. 283 echo 'export ELM_DISPLAY=wl'
  422. 284 echo 'export ELM_ACCEL=opengl'
  423. 285 echo 'export ECORE_EVAS_ENGINE=wayland_egl'
  424. 286 echo ''
  425. 287 echo ''
  426. 288 echo '# xpra environment settings'
  427. 289 echo 'export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm'
  428. 290 echo 'export XPRA_XSHM=0'
  429. 291 echo ''
  430. 292 echo 'bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh'
  431. 293 echo 'export TERM=xterm'
  432. 294 echo '[ -e /x11docker.LANG ] && export LANG="$(cat /x11docker.LANG)"'
  433. 295 echo '[ -e "/usr/share/zoneinfo/Europe/Moscow" ] || export TZ=UTC-03'
  434. 296 echo '[ "$(date -Ihours)" != "2019-06-17T11+03:00" ] && export TZ=UTC-03'
  435. 297 echo '[ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND'
  436. 298 echo '[ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND'
  437. 299 echo '# container environment (--env)'
  438. 300 echo 'export "container=docker"'
  439. 301 echo 'export "XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR"'
  440. 302 echo 'export "WAYLAND_DISPLAY="'
  441. 303 echo 'export "COLUMNS=128"'
  442. 304 echo 'export "LINES=56"'
  443. 305 echo ''
  444. 306 echo 'env >> /x11docker/environment'
  445. 307 echo 'verbose "Container environment:'
  446. 308 echo '$(env | sort)"'
  447. 309 echo 'verbose "Copy of environment stored in /x11docker/environment"'
  448. 310 echo ''
  449. 311 echo 'cd "$HOME"'
  450. 312 Workdir=$(docker inspect --format='{{.Config.WorkingDir}}' erichough/kodi 2>>'/home/docker/.cache/x11docker/erichough-kodi-931691/container.log'| rmcr)
  451. 313 [ "$Workdir" ] && echo "[ -d \"$Workdir\" ] && cd \"$Workdir\" # WORKDIR in image"
  452. 314 echo ''
  453. 315 echo verbose -d "Running image command: $Tini \$Dbus $Entrypoint $Imagecommand"
  454. 316 echo "\$Exec $Tini \$Dbus $Entrypoint $Imagecommand >>/x11docker/stdout 2>>/x11docker/stderr"
  455. 317 echo '# Ready for docker run'
  456. 318 } >> /home/docker/.cache/x11docker/erichough-kodi-931691/share/container.CMD.sh
  457. 319
  458. 320 nl -ba >> /home/docker/.cache/x11docker/erichough-kodi-931691/share/x11docker.log < /home/docker/.cache/x11docker/erichough-kodi-931691/share/container.CMD.sh
  459. 321
  460. 322 Windowmanager=""
  461. 323 Windowmanagercommand=""
  462. 324 Wmdockercommand="docker run --rm --detach \
  463. 325 --name x11docker_X100_931691_erichough-kodi_WM \
  464. 326 --user 1999:1999 \
  465. 327 --cap-drop=ALL --security-opt=no-new-privileges --security-opt label=type:container_runtime_t \
  466. 328 --volume '':'/x11docker/Xclientcookie':rw \
  467. 329 --env 'WAYLAND_DISPLAY='"
  468. 330 [ "$Windowmanager" = "container" ] && {
  469. 331 docker inspect "$(cut -d' ' -f1 <<<"$Windowmanagercommand")" >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log 2>&1 && {
  470. 332 Wmdockercommand="$Wmdockercommand \
  471. 333 -- $Windowmanagercommand"
  472. 334 verbose -d "Generated docker command for window manager:
  473. 335 $Wmdockercommand"
  474. 336 Wmcontainerid="$(eval $Wmdockercommand)"
  475. 337 [ "$Wmcontainerid" ] && {
  476. 338 debugnote "Window manager container: $Wmcontainerid"
  477. 339 for ((Count=1 ; Count<=10 ; Count++)); do
  478. 340 Pid1pid=$(docker inspect --format '{{.State.Pid}}' $Wmcontainerid 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log | rmcr)
  479. 341 verbose -d "$Count. check for PID 1 of window manager container: $Pid1pid"
  480. 342 checkpid "$Pid1pid" && break
  481. 343 sleep 0.2
  482. 344 done
  483. 345 }
  484. 346 checkpid "$Pid1pid" && storepid "$Pid1pid" windowcontainerpid1
  485. 347 [ -z "$Wmcontainerid" ] && note "Option --wm: Failed to run window manager image: $Windowmanagercommand." && Windowmanager=host ||:
  486. 348 } || {
  487. 349 note "Option --wm: Did not find window manager image
  488. 350 $(cut -d' ' -f1 <<<"$Windowmanagercommand")
  489. 351 to provide a containerized window manager. Please run:
  490. 352 docker pull x11docker/openbox
  491. 353 If you want to use a host window manager instead and avoid this warning,
  492. 354 use option --wm=host or --wm=COMMAND
  493. 355 or provide a local image with e.g. --wm=x11docker/lxde
  494. 356 To run without a window manager: --wm=none or --desktop
  495. 357 Fallback: Will try to run a host window manager: "
  496. 358 Windowmanager=host
  497. 359 }
  498. 360 }
  499. 361 [ "$Windowmanager" = "host" ] && {
  500. 362 command -v '' >/dev/null || note 'Did not find a host window manager.
  501. 363 Please pull image x11docker/openbox or provide one of:
  502. 364 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'
  503. 365 note 'Option --wm: Starting host window manager: WM_NOT_FOUND'
  504. 366 [ "$(id -u)" = '0' ] && su docker -c 'env DISPLAY= XAUTHORITY= WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland CLUTTER_BACKEND=wayland SDL_VIDEODRIVER=wayland ELM_DISPLAY=wl ELM_ACCEL=opengl ECORE_EVAS_ENGINE=wayland_egl X11DOCKER_CACHE=/home/docker/.cache/x11docker/erichough-kodi-931691 NO_WM_FOUND >>/home/docker/.cache/x11docker/erichough-kodi-931691/xinit.log 2>&1 & storepid $! windowmanager'
  505. 367 [ "$(id -u)" != '0' ] && env DISPLAY= XAUTHORITY= WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland CLUTTER_BACKEND=wayland SDL_VIDEODRIVER=wayland ELM_DISPLAY=wl ELM_ACCEL=opengl ECORE_EVAS_ENGINE=wayland_egl X11DOCKER_CACHE=/home/docker/.cache/x11docker/erichough-kodi-931691 NO_WM_FOUND >>/home/docker/.cache/x11docker/erichough-kodi-931691/xinit.log 2>&1 & storepid $! windowmanager
  506. 368 }
  507. 369 read Containerid < <(docker run --tty --rm --detach \
  508. 370 --name x11docker_X100_931691_erichough-kodi \
  509. 371 --user 1000:1000 \
  510. 372 --env USER=docker \
  511. 373 --userns host \
  512. 374 --group-add 13 \
  513. 375 --group-add 12 \
  514. 376 --cap-drop ALL \
  515. 377 --security-opt no-new-privileges \
  516. 378 --security-opt label=type:container_runtime_t \
  517. 379 --volume '/usr/bin/docker-init':'/x11docker/tini':ro \
  518. 380 --tmpfs /run --tmpfs /run/lock \
  519. 381 --volume '/home/docker/.cache/x11docker/erichough-kodi-931691/share':'/x11docker':rw \
  520. 382 --volume '/home/docker':'/home/docker':rw \
  521. 383 --volume '/dev/dri':'/dev/dri':rw \
  522. 384 --device '/dev/dri':'/dev/dri':rw \
  523. 385 --volume '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  524. 386 --device '/dev/vga_arbiter':'/dev/vga_arbiter':rw \
  525. 387 --volume '/dev/snd':'/dev/snd':rw \
  526. 388 --device '/dev/snd':'/dev/snd':rw \
  527. 389 --volume '/run/user/1000/':'/':rw \
  528. 390 --workdir '/tmp' \
  529. 391 --entrypoint env \
  530. 392 --env 'container=docker' \
  531. 393 --env 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR' \
  532. 394 --env 'WAYLAND_DISPLAY=' \
  533. 395 --env 'COLUMNS=128' \
  534. 396 --env 'LINES=56' \
  535. 397 -- erichough/kodi /bin/sh - /x11docker/container.CMD.sh 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log | rmcr)
  536. 398
  537. 399 verbose -d "Container ID: $Containerid"
  538. 400 [ "$Containerid" ] || {
  539. 401 error "Startup of docker failed. Did not receive a container ID.
  540. 402
  541. 403 Last lines of container log:
  542. 404 $(rmcr < /home/docker/.cache/x11docker/erichough-kodi-931691/container.log | tail)"
  543. 405 }
  544. 406 echo $Containerid >> /home/docker/.cache/x11docker/erichough-kodi-931691/container.id
  545. 407
  546. 408 # wait for container to be ready
  547. 409 for ((Count=1 ; Count<=20 ; Count++)); do
  548. 410 docker exec x11docker_X100_931691_erichough-kodi sh -c : 2>&1 | rmcr >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log && { verbose -d 'Container is up and running.' ; break ; } || verbose -d "Container not ready on $Count. attempt, trying again."
  549. 411 sleep 0.2
  550. 412 done
  551. 413 docker logs -f $Containerid 2>&1 | rmcr >> /home/docker/.cache/x11docker/erichough-kodi-931691/container.log &
  552. 414 for ((Count=1 ; Count<=10 ; Count++)); do
  553. 415 Pid1pid=$(docker inspect --format '{{.State.Pid}}' x11docker_X100_931691_erichough-kodi 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log | rmcr)
  554. 416 verbose -d "$Count. check for PID 1: $Pid1pid"
  555. 417 checkpid "$Pid1pid" && break
  556. 418 sleep 0.2
  557. 419 done
  558. 420 echo $Pid1pid >> /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid
  559. 421 verbose -d "Host PID of container PID 1: $Pid1pid"
  560. 422
  561. 423 docker inspect --format '{{ .NetworkSettings.IPAddress }}' x11docker_X100_931691_erichough-kodi 2>>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log | rmcr >> /home/docker/.cache/x11docker/erichough-kodi-931691/container.ip
  562. 424 verbose -d "Container IP: $(cat /home/docker/.cache/x11docker/erichough-kodi-931691/container.ip)"
  563. 425
  564. 426 Failure="$(rmcr < /home/docker/.cache/x11docker/erichough-kodi-931691/container.log | grep -v grep | grep -E 'Error response from daemon|OCI runtime exec' ||:)"
  565. 427 [ "$Failure" ] && {
  566. 428 echo "$Failure" >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log
  567. 429 error "Got error message from docker daemon:
  568. 430 $Failure"
  569. 431 }
  570. 432
  571. 433 docker exec --tty x11docker_X100_931691_erichough-kodi sh -c 'cp /x11docker/containerrootrc /tmp/containerrootrc ; chmod 644 /tmp/containerrootrc' 2>&1 | rmcr >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log
  572. 434 docker exec --tty -u root x11docker_X100_931691_erichough-kodi /bin/sh /tmp/containerrootrc 2>&1 | rmcr >>/home/docker/.cache/x11docker/erichough-kodi-931691/container.log
  573. 435 exit 0
  574.  
  575. x11docker[609.44]: Generated containerrootrc:
  576. 1 #! /bin/sh
  577. 2 # set up docker container as root before ongoing in unprivileged container.CMD.sh
  578. 3 # commands in this script are executed as root in container
  579. 4
  580. 5 warning() {
  581. 6 echo "$*:WARNING" >>$Messagefile
  582. 7 }
  583. 8 note() {
  584. 9 echo "$*:NOTE" >>$Messagefile
  585. 10 }
  586. 11 verbose() {
  587. 12 echo "$*:VERBOSE" >>$Messagefile
  588. 13 }
  589. 14 debugnote() {
  590. 15 echo "$*:DEBUGNOTE" >>$Messagefile
  591. 16 }
  592. 17 error() {
  593. 18 echo "$*:ERROR" >>$Messagefile
  594. 19 exit 1
  595. 20 }
  596. 21 stdout() {
  597. 22 echo "$*:STDOUT" >>$Messagefile
  598. 23 }
  599. 24 Messagefile=/x11docker/message.fifo
  600. 25
  601. 26 verbose -d 'Running setup as root in container'
  602. 27 # check type of libc
  603. 28 ldd --version 2>&1 | grep -q 'musl libc' && Containerlibc='musl'
  604. 29 ldd --version 2>&1 | grep -q -E 'GLIBC|GNU libc' && Containerlibc='glibc'
  605. 30 verbose -d "Container libc: $Containerlibc"
  606. 31
  607. 32 # prepare X environment
  608. 33 # create some system dirs with needed permissions
  609. 34 mkdir -v -p /var/lib/dbus /var/run/dbus
  610. 35 mkdir -v -p -m 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  611. 36 chmod -c 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  612. 37 export DISPLAY= XAUTHORITY=/x11docker/Xclientcookie
  613. 38 [ -e /X100 ] && ln -s /X100
  614. 39 ls -l /X100
  615. 40 ls -l
  616. 41
  617. 42 # time zone
  618. 43 [ ! -d /usr/share/zoneinfo ] && [ "$Containerlibc" = "glibc" ] && {
  619. 44 mkdir -p /usr/share/zoneinfo/Europe
  620. 45 cp '/x11docker/timezone' '/usr/share/zoneinfo/Europe/Moscow'
  621. 46 }
  622. 47 [ -e '/usr/share/zoneinfo/Europe/Moscow' ] && ln -f -s '/usr/share/zoneinfo/Europe/Moscow' /etc/localtime
  623. 48
  624. 49 Containersystem=$(. /etc/os-release; echo $ID)
  625. 50 verbose "Container system ID: $Containersystem"
  626. 51
  627. 52 # environment variables
  628. 53 export 'container=docker'
  629. 54 export 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  630. 55 export 'WAYLAND_DISPLAY='
  631. 56 export 'COLUMNS=128'
  632. 57 export 'LINES=56'
  633. 58
  634. 59 # Check container user
  635. 60 Containeruser=$(cat /x11docker/container.user)
  636. 61
  637. 62 # create user entry in /etc/passwd (and delete possibly existing same uid)
  638. 63 cat /etc/passwd | grep -v ':1000:' > /tmp/passwd
  639. 64 # disable possible /etc/shadow passwords for other users
  640. 65 sed -i s%:x:%:-:% /tmp/passwd
  641. 66 echo 'docker:x:1000:1000:docker,,,:/home/docker:/bin/sh' >> /tmp/passwd
  642. 67 rm /etc/passwd
  643. 68 mv /tmp/passwd /etc/passwd || warning 'Unable to change /etc/passwd. That may be a seurity risk.'
  644. 69
  645. 70 # create password entry for container user in /etc/shadow
  646. 71 rm -v /etc/shadow || warning 'Cannot change /etc/shadow. That may be a security risk.'
  647. 72 echo "docker:sac19FwGGTx/A:17293:0:99999:7:::" > /etc/shadow
  648. 73 echo 'root:*:17219:0:99999:7:::' >> /etc/shadow
  649. 74
  650. 75
  651. 76 # create user group entry (and delete possibly existing same gid)
  652. 77 cat /etc/group | grep -v ':1000:' > /tmp/group
  653. 78 echo docker:x:1000: >> /tmp/group
  654. 79 mv /tmp/group /etc/group
  655. 80
  656. 81
  657. 82 # create /etc/sudoers, delete /etc/sudoers.d. Overwrite possible sudo setups in image.
  658. 83 [ -e /etc/sudoers.d ] && rm -v -R /etc/sudoers.d
  659. 84 [ -e /etc/sudoers ] && rm -v /etc/sudoers
  660. 85 echo '# /etc/sudoers created by x11docker' > /etc/sudoers
  661. 86 echo 'root ALL=(ALL) ALL' >> /etc/sudoers
  662. 87
  663. 88 # restrict PAM configuration of su and sudo
  664. 89 mkdir -p /etc/pam.d
  665. 90 [ -e /etc/pam.d/sudo ] && rm -v /etc/pam.d/sudo
  666. 91 case "$Containersystem" in
  667. 92 fedora)
  668. 93 echo '#%PAM-1.0' > /etc/pam.d/su
  669. 94 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su
  670. 95 echo 'account sufficient pam_succeed_if.so uid = 0 use_uid quiet' >> /etc/pam.d/su
  671. 96 echo 'session include system-auth' >> /etc/pam.d/su
  672. 97 ;;
  673. 98 *)
  674. 99 echo '#%PAM-1.0' > /etc/pam.d/su
  675. 100 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su # allow root to switch user without a password
  676. 101 echo '@include common-auth' >> /etc/pam.d/su
  677. 102 echo '@include common-account' >> /etc/pam.d/su
  678. 103 echo '@include common-session' >> /etc/pam.d/su
  679. 104 ;;
  680. 105 esac
  681. 106
  682. 107 [ -e '/home/docker' ] || {
  683. 108 # only create HOME here if capability CHOWN is allowed.
  684. 109 :>/tmp/chowntestfile
  685. 110 chown $Containeruser /tmp/chowntestfile && {
  686. 111 mkdir -v -p '/home/docker'
  687. 112 chown $Containeruser '/home/docker'
  688. 113 }
  689. 114 rm /tmp/chowntestfile
  690. 115 }
  691. 116
  692. 117 # Set up container user groups
  693. 118 Groupname=
  694. 119 Groupid=
  695. 120 [ "$Groupname" ] || Groupname=$(cat /etc/group | grep "video" | cut -d: -f1)
  696. 121 [ "$Groupid" ] || Groupid=$(cat /etc/group | grep "video" | cut -d: -f3)
  697. 122 [ "$Groupname" ] && {
  698. 123 cat /etc/group | sed "s/^$Groupname.*/$Groupname:x:$Groupid:$(cat /etc/group | grep "$Groupname:.:" | cut -d: -f4 ),$Containeruser/" | sed 's/:,/:/' > /tmp/group
  699. 124 cat /etc/group | grep -q "$Groupname:.:" || echo $Groupname:x:$Groupid:$Containeruser >> /tmp/group
  700. 125 cp /tmp/group /etc/group
  701. 126 } || note 'Failed to add user to group: video'
  702. 127
  703. 128 Groupname=
  704. 129 Groupid=
  705. 130 [ "$Groupname" ] || Groupname=$(cat /etc/group | grep "audio" | cut -d: -f1)
  706. 131 [ "$Groupid" ] || Groupid=$(cat /etc/group | grep "audio" | cut -d: -f3)
  707. 132 [ "$Groupname" ] && {
  708. 133 cat /etc/group | sed "s/^$Groupname.*/$Groupname:x:$Groupid:$(cat /etc/group | grep "$Groupname:.:" | cut -d: -f4 ),$Containeruser/" | sed 's/:,/:/' > /tmp/group
  709. 134 cat /etc/group | grep -q "$Groupname:.:" || echo $Groupname:x:$Groupid:$Containeruser >> /tmp/group
  710. 135 cp /tmp/group /etc/group
  711. 136 } || note 'Failed to add user to group: audio'
  712. 137
  713. 138
  714. 139 # disable getty in inittab
  715. 140 [ -e /etc/inittab ] && sed -i 's/.*getty/##getty disabled by x11docker## \0/' /etc/inittab
  716. 141
  717. 142
  718. 143 echo 'x11docker: Container root setup is ready'
  719. 144 :> /x11docker.setupready
  720. 145
  721.  
  722. x11docker[609.46]: Generated xinitrc:
  723. 1 #! /bin/sh
  724. 2 Timetosaygoodbye=/home/docker/.cache/x11docker/erichough-kodi-931691/share/timetosaygoodbye
  725. 3 Timetosaygoodbyefifo=/home/docker/.cache/x11docker/erichough-kodi-931691/share/timetosaygoodbye.fifo
  726. 4 Sharefolder=/home/docker/.cache/x11docker/erichough-kodi-931691/share
  727. 5 Bgpidfile=/home/docker/.cache/x11docker/erichough-kodi-931691/backgroundpids
  728. 6 Winsubsystem=
  729. 7 Usemkfifo=yes
  730. 8 storepid ()
  731. 9 {
  732. 10 echo ${1:-} ${2:-} >> $Bgpidfile;
  733. 11 verbose -d "Stored background pid ${1:-} of ${2:-}" 2> /dev/null;
  734. 12 disown ${1:-} 2> /dev/null || :
  735. 13 }
  736. 14 rocknroll ()
  737. 15 {
  738. 16 [ -s "$Timetosaygoodbye" ] && return 1;
  739. 17 [ -e "$Timetosaygoodbye" ] || return 1;
  740. 18 return 0
  741. 19 }
  742. 20 waitfortheend ()
  743. 21 {
  744. 22 case $Usemkfifo in
  745. 23 yes)
  746. 24 while rocknroll; do
  747. 25 bash -c "read -n1 <&8" && saygoodbye timetosaygoodbyefifo || sleep 1;
  748. 26 done
  749. 27 ;;
  750. 28 no)
  751. 29 while rocknroll; do
  752. 30 sleep 2;
  753. 31 done
  754. 32 ;;
  755. 33 esac
  756. 34 }
  757. 35 saygoodbye ()
  758. 36 {
  759. 37 verbose -d "time to say goodbye ($*)";
  760. 38 [ -e "$Sharefolder" ] && {
  761. 39 echo timetosaygoodbye >> $Timetosaygoodbye;
  762. 40 echo timetosaygoodbye >> $Timetosaygoodbyefifo
  763. 41 }
  764. 42 }
  765. 43 disable_xhost ()
  766. 44 {
  767. 45 local Line=;
  768. 46 command -v xhost > /dev/null || {
  769. 47 warning "Command 'xhost' not found.
  770. 48 Can not check for possibly allowed network access to X.
  771. 49 Please install 'xhost'.
  772. 50 $Wikipackages";
  773. 51 return 1
  774. 52 };
  775. 53 xhost 2>&1 | tail -n +2 /dev/stdin | while read -r Line; do
  776. 54 verbose -d "xhost: Removing entry $Line";
  777. 55 xhost -$Line;
  778. 56 done;
  779. 57 xhost -;
  780. 58 [ "$(xhost 2>&1 | wc -l)" -gt "1" ] && {
  781. 59 warning "Remaining xhost permissions found on display ${DISPLAY:-}
  782. 60 $(xhost 2>&1 )";
  783. 61 return 1
  784. 62 };
  785. 63 xhost 2>&1 | grep "access control disabled" && {
  786. 64 warning "Failed to restrict xhost permissions.
  787. 65 Access to display ${DISPLAY:-} is allowed for everyone.";
  788. 66 return 1
  789. 67 };
  790. 68 return 0
  791. 69 }
  792. 70 wincmd ()
  793. 71 {
  794. 72 cmd /C "${@//&/^&}" 2>&1 | rmcr
  795. 73 }
  796. 74 rmcr ()
  797. 75 {
  798. 76 case "${1:-}" in
  799. 77 "")
  800. 78 sed "s/$(printf "\r")//g"
  801. 79 ;;
  802. 80 *)
  803. 81 sed -i "s/$(printf "\r")//g" "${1:-}"
  804. 82 ;;
  805. 83 esac
  806. 84 }
  807. 85
  808. 86 warning() {
  809. 87 echo "$*:WARNING" >>$Messagefile
  810. 88 }
  811. 89 note() {
  812. 90 echo "$*:NOTE" >>$Messagefile
  813. 91 }
  814. 92 verbose() {
  815. 93 echo "$*:VERBOSE" >>$Messagefile
  816. 94 }
  817. 95 debugnote() {
  818. 96 echo "$*:DEBUGNOTE" >>$Messagefile
  819. 97 }
  820. 98 error() {
  821. 99 echo "$*:ERROR" >>$Messagefile
  822. 100 exit 1
  823. 101 }
  824. 102 stdout() {
  825. 103 echo "$*:STDOUT" >>$Messagefile
  826. 104 }
  827. 105 Messagefile=/home/docker/.cache/x11docker/erichough-kodi-931691/share/message.fifo
  828. 106
  829. 107 export PATH='/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/games:/usr/local/bin:/usr/sbin:/sbin'
  830. 108 export DISPLAY= XAUTHORITY= WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland CLUTTER_BACKEND=wayland SDL_VIDEODRIVER=wayland ELM_DISPLAY=wl ELM_ACCEL=opengl ECORE_EVAS_ENGINE=wayland_egl X11DOCKER_CACHE=/home/docker/.cache/x11docker/erichough-kodi-931691
  831. 109 verbose -d 'Running xinitrc'
  832. 110 unset DISPLAY XAUTHORITY WAYLAND_DISPLAY
  833. 111 export XDG_SESSION_TYPE=wayland
  834. 112 export GDK_BACKEND=wayland
  835. 113 export QT_QPA_PLATFORM=wayland
  836. 114 export CLUTTER_BACKEND=wayland
  837. 115 export SDL_VIDEODRIVER=wayland
  838. 116 export ELM_DISPLAY=wl
  839. 117 export ELM_ACCEL=opengl
  840. 118 export ECORE_EVAS_ENGINE=wayland_egl
  841. 119 touch /home/docker/.cache/x11docker/erichough-kodi-931691/Xready
  842. 120 waitfortheend
  843.  
  844. x11docker[609.48]: Stored background pid 3596 of containershell
  845.  
  846. x11docker[609.56]: Running xinitrc
  847.  
  848. x11docker[609.61]: Waiting since 0s for --tty to be ready.
  849.  
  850. x11docker[609.62]: --tty is ready
  851.  
  852. x11docker[609.75]: Running dockerrc
  853.  
  854. x11docker[609.75]: Waiting since 2s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  855.  
  856. x11docker[609.91]: Found default runtime: runc
  857.  
  858.  
  859. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/container.log <==
  860. [
  861. {
  862. "Id": "sha256:e5d09597de45632ef3e67d59696a8522dd7b429c6f18bbfcfc6f05977ff23fdd",
  863. "RepoTags": [
  864. "erichough/kodi:latest"
  865. ],
  866. "RepoDigests": [
  867. "erichough/kodi@sha256:deeda7039d1c2364c8d550880c03a0e34ec7c67ac56dc5026f04e6cc472ffbba"
  868. ],
  869. "Parent": "",
  870. "Comment": "",
  871. "Created": "2019-05-28T17:33:49.564607317Z",
  872. "Container": "cea7c29dedd0ec71af93c5fc509cce01a4703ed0396f300afbc9df8efe2326ff",
  873. "ContainerConfig": {
  874. "Hostname": "cea7c29dedd0",
  875. "Domainname": "",
  876. "User": "",
  877. "AttachStdin": false,
  878. "AttachStdout": false,
  879. "AttachStderr": false,
  880. "Tty": false,
  881. "OpenStdin": false,
  882. "StdinOnce": false,
  883. "Env": [
  884. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  885. ],
  886. "Cmd": [
  887. "/bin/sh",
  888. "-c",
  889. "#(nop) ",
  890. "ENTRYPOINT [\"/usr/local/bin/entrypoint.sh\"]"
  891. ],
  892. "ArgsEscaped": true,
  893. "Image": "sha256:847561a2632457858227edc491b226e256771e1448f0c835b97935ecb8f35ff4",
  894. "Volumes": null,
  895. "WorkingDir": "",
  896. "Entrypoint": [
  897. "/usr/local/bin/entrypoint.sh"
  898. ],
  899. "OnBuild": null,
  900. "Labels": {}
  901. },
  902. "DockerVersion": "18.03.1-ee-3",
  903. "Author": "",
  904. "Config": {
  905. "Hostname": "",
  906. "Domainname": "",
  907. "User": "",
  908. "AttachStdin": false,
  909. "AttachStdout": false,
  910. "AttachStderr": false,
  911. "Tty": false,
  912. "OpenStdin": false,
  913. "StdinOnce": false,
  914. "Env": [
  915. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  916. ],
  917. "Cmd": null,
  918. "ArgsEscaped": true,
  919. "Image": "sha256:847561a2632457858227edc491b226e256771e1448f0c835b97935ecb8f35ff4",
  920. "Volumes": null,
  921. "WorkingDir": "",
  922. "Entrypoint": [
  923. "/usr/local/bin/entrypoint.sh"
  924. ],
  925. "OnBuild": null,
  926. "Labels": null
  927. },
  928. "Architecture": "amd64",
  929. "Os": "linux",
  930. "Size": 504745147,
  931. "VirtualSize": 504745147,
  932. "GraphDriver": {
  933. "Data": {
  934. "LowerDir": "/var/lib/docker/overlay2/12aac3fb8f4d7ac51349ac6bd84bf188305f845f5774854d8d9533d135d5840e/diff:/var/lib/docker/overlay2/5bd987e908ff11b5f8c2703eac299d3b99468306032ebbd39c64de7a5b89f298/diff:/var/lib/docker/overlay2/f9f699e213176d8c9de4cb39f33982889fd47cad6fcd71b4d7431b8998cfb7d6/diff:/var/lib/docker/overlay2/da29b0c9672dbe65be9176ca1187be987e50058f20a3a4dc5e5922adcbb88a11/diff:/var/lib/docker/overlay2/2e79bbe6a2f43af1aec15b25e538d591d2ff53ebce46743f759ffc49f9a83967/diff",
  935. "MergedDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/merged",
  936. "UpperDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/diff",
  937. "WorkDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/work"
  938. },
  939. "Name": "overlay2"
  940. },
  941. "RootFS": {
  942. "Type": "layers",
  943. "Layers": [
  944. "sha256:02571d034293cb241c078d7ecbf7a84b83a5df2508f11a91de26ec38eb6122f1",
  945. "sha256:270f934787edf0135132b6780cead0f12ca11690c5d6a5d395e44d290912100a",
  946. "sha256:8d267010480fed7e616b9b7861854042aad4ef5e55f8771f2c738061640d2cb0",
  947. "sha256:c6c2163d51dd58e117a0ae0a4a3d329dbd8aa6071eb6975eeea6e63cba64db43",
  948. "sha256:0e3ccd0b442198db8c1c9a87e4d816149d035741ed3eb643c518e677003dc6e9",
  949. "sha256:0169ceb0fcdaad5658a52678d81983794533708b0403456e5a5dab4950fa1ebf"
  950. ]
  951. },
  952. "Metadata": {
  953. "LastTagTime": "0001-01-01T00:00:00Z"
  954. }
  955. }
  956. ]
  957. [
  958. {
  959. "Id": "sha256:e5d09597de45632ef3e67d59696a8522dd7b429c6f18bbfcfc6f05977ff23fdd",
  960. "RepoTags": [
  961. "erichough/kodi:latest"
  962. ],
  963. "RepoDigests": [
  964. "erichough/kodi@sha256:deeda7039d1c2364c8d550880c03a0e34ec7c67ac56dc5026f04e6cc472ffbba"
  965. ],
  966. "Parent": "",
  967. "Comment": "",
  968. "Created": "2019-05-28T17:33:49.564607317Z",
  969. "Container": "cea7c29dedd0ec71af93c5fc509cce01a4703ed0396f300afbc9df8efe2326ff",
  970. "ContainerConfig": {
  971. "Hostname": "cea7c29dedd0",
  972. "Domainname": "",
  973. "User": "",
  974. "AttachStdin": false,
  975. "AttachStdout": false,
  976. "AttachStderr": false,
  977. "Tty": false,
  978. "OpenStdin": false,
  979. "StdinOnce": false,
  980. "Env": [
  981. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  982. ],
  983. "Cmd": [
  984. "/bin/sh",
  985. "-c",
  986. "#(nop) ",
  987. "ENTRYPOINT [\"/usr/local/bin/entrypoint.sh\"]"
  988. ],
  989. "ArgsEscaped": true,
  990. "Image": "sha256:847561a2632457858227edc491b226e256771e1448f0c835b97935ecb8f35ff4",
  991. "Volumes": null,
  992. "WorkingDir": "",
  993. "Entrypoint": [
  994. "/usr/local/bin/entrypoint.sh"
  995. ],
  996. "OnBuild": null,
  997. "Labels": {}
  998. },
  999. "DockerVersion": "18.03.1-ee-3",
  1000. "Author": "",
  1001. "Config": {
  1002. "Hostname": "",
  1003. "Domainname": "",
  1004. "User": "",
  1005. "AttachStdin": false,
  1006. "AttachStdout": false,
  1007. "AttachStderr": false,
  1008. "Tty": false,
  1009. "OpenStdin": false,
  1010. "StdinOnce": false,
  1011. "Env": [
  1012. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  1013. ],
  1014. "Cmd": null,
  1015. "ArgsEscaped": true,
  1016. "Image": "sha256:847561a2632457858227edc491b226e256771e1448f0c835b97935ecb8f35ff4",
  1017. "Volumes": null,
  1018. "WorkingDir": "",
  1019. "Entrypoint": [
  1020. "/usr/local/bin/entrypoint.sh"
  1021. ],
  1022. "OnBuild": null,
  1023. "Labels": null
  1024. },
  1025. "Architecture": "amd64",
  1026. "Os": "linux",
  1027. "Size": 504745147,
  1028. "VirtualSize": 504745147,
  1029. "GraphDriver": {
  1030. "Data": {
  1031. "LowerDir": "/var/lib/docker/overlay2/12aac3fb8f4d7ac51349ac6bd84bf188305f845f5774854d8d9533d135d5840e/diff:/var/lib/docker/overlay2/5bd987e908ff11b5f8c2703eac299d3b99468306032ebbd39c64de7a5b89f298/diff:/var/lib/docker/overlay2/f9f699e213176d8c9de4cb39f33982889fd47cad6fcd71b4d7431b8998cfb7d6/diff:/var/lib/docker/overlay2/da29b0c9672dbe65be9176ca1187be987e50058f20a3a4dc5e5922adcbb88a11/diff:/var/lib/docker/overlay2/2e79bbe6a2f43af1aec15b25e538d591d2ff53ebce46743f759ffc49f9a83967/diff",
  1032. "MergedDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/merged",
  1033. "UpperDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/diff",
  1034. "WorkDir": "/var/lib/docker/overlay2/d55f08f86f916e1d2e05752883e1b03f15f9af44789fd73cd96a6dffd591f8ea/work"
  1035. },
  1036. "Name": "overlay2"
  1037. },
  1038. "RootFS": {
  1039. "Type": "layers",
  1040. "Layers": [
  1041. "sha256:02571d034293cb241c078d7ecbf7a84b83a5df2508f11a91de26ec38eb6122f1",
  1042. "sha256:270f934787edf0135132b6780cead0f12ca11690c5d6a5d395e44d290912100a",
  1043. "sha256:8d267010480fed7e616b9b7861854042aad4ef5e55f8771f2c738061640d2cb0",
  1044. "sha256:c6c2163d51dd58e117a0ae0a4a3d329dbd8aa6071eb6975eeea6e63cba64db43",
  1045. "sha256:0e3ccd0b442198db8c1c9a87e4d816149d035741ed3eb643c518e677003dc6e9",
  1046. "sha256:0169ceb0fcdaad5658a52678d81983794533708b0403456e5a5dab4950fa1ebf"
  1047. ]
  1048. },
  1049. "Metadata": {
  1050. "LastTagTime": "0001-01-01T00:00:00Z"
  1051. }
  1052. }
  1053. ]
  1054.  
  1055. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/message.log <==
  1056. x11docker[610.49]: Waiting since 2s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  1057.  
  1058. 1 #! /bin/sh
  1059. 2 # created startscript for docker run: container.CMD.sh
  1060. 3 # runs as unprivileged user in container
  1061. 4 calculate() {
  1062. 5 LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"
  1063. 6 }
  1064. 7
  1065. 8 warning() {
  1066. 9 echo "$*:WARNING" >>$Messagefile
  1067. 10 }
  1068. 11 note() {
  1069. 12 echo "$*:NOTE" >>$Messagefile
  1070. 13 }
  1071. 14 verbose() {
  1072. 15 echo "$*:VERBOSE" >>$Messagefile
  1073. 16 }
  1074. 17 debugnote() {
  1075. 18 echo "$*:DEBUGNOTE" >>$Messagefile
  1076. 19 }
  1077. 20 error() {
  1078. 21 echo "$*:ERROR" >>$Messagefile
  1079. 22 exit 1
  1080. 23 }
  1081. 24 stdout() {
  1082. 25 echo "$*:STDOUT" >>$Messagefile
  1083. 26 }
  1084. 27 Messagefile=/x11docker/message.fifo
  1085. 28
  1086. 29 # wait for container setup script do be ready
  1087. 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
  1088. 31 verbose "Waiting since ${Count}s for container root setup to be ready"
  1089. 32 [ -e /x11docker.setupready ] && break || sleep 1
  1090. 33 done
  1091. 34
  1092. 35 verbose -d "Running unprivileged user commands in container"
  1093. 36
  1094. 37 Imagecommand=""
  1095. 38 Entrypoint="/usr/local/bin/entrypoint.sh"
  1096. 39
  1097. 40 verbose "Container system:
  1098. 41 $(cat /etc/os-release 2>&1)"
  1099. 42
  1100. 43
  1101. 44 # x11docker variable settings
  1102. 45 Containeruser="$(cat /x11docker/container.user)"
  1103. 46 Containeruserhome="/home/docker"
  1104. 47 export USER="$Containeruser"
  1105. 48 export HOME="$Containeruserhome"
  1106. 49 # Copy files from /etc/skel into empty HOME
  1107. 50 [ -d /etc/skel ] && [ "$(ls -A "/home/docker" 2>/dev/null)" ] && {
  1108. 51 cp -n -R /etc/skel/. $Containeruserhome
  1109. 52 }
  1110. 53 [ -e /x11docker/pulsecookie ] && {
  1111. 54 mkdir -p "$Containeruserhome/.config/pulse"
  1112. 55 cp "/x11docker/pulsecookie" "$Containeruserhome/.config/pulse/cookie"
  1113. 56 }
  1114. 57 unset DISPLAY WAYLAND_DISPLAY XAUTHORITY
  1115. 58 command -v dbus-run-session >/dev/null && Dbus=dbus-run-session || note "Option --dbus: dbus seems to be not installed.
  1116. 59 Cannot run a DBus user session. Please install dbus in image."
  1117. 60 Exec=exec
  1118. 61 export NO_AT_BRIDGE=1
  1119. 62
  1120. 63 [ -e "$XDG_RUNTIME_DIR" ] || {
  1121. 64 export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR
  1122. 65 mkdir -m 700 -p $XDG_RUNTIME_DIR
  1123. 66 export XDG_RUNTIME_DIR
  1124. 67 }
  1125. 68
  1126. 69 # Wayland environment
  1127. 70 export WAYLAND_DISPLAY=
  1128. 71 ln -s / $XDG_RUNTIME_DIR/
  1129. 72
  1130. 73 export XDG_SESSION_TYPE=wayland
  1131. 74 export GDK_BACKEND=wayland
  1132. 75 export QT_QPA_PLATFORM=wayland
  1133. 76 export CLUTTER_BACKEND=wayland
  1134. 77 export SDL_VIDEODRIVER=wayland
  1135. 78 export ELM_DISPLAY=wl
  1136. 79 export ELM_ACCEL=opengl
  1137. 80 export ECORE_EVAS_ENGINE=wayland_egl
  1138. 81
  1139. 82
  1140. 83 # xpra environment settings
  1141. 84 export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm
  1142. 85 export XPRA_XSHM=0
  1143. 86
  1144. 87 bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh
  1145. 88 export TERM=xterm
  1146. 89 [ -e /x11docker.LANG ] && export LANG="$(cat /x11docker.LANG)"
  1147. 90 [ -e "/usr/share/zoneinfo/Europe/Moscow" ] || export TZ=UTC-03
  1148. 91 [ "$(date -Ihours)" != "2019-06-17T11+03:00" ] && export TZ=UTC-03
  1149. 92 [ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND
  1150. 93 [ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND
  1151. 94 # container environment (--env)
  1152. 95 export "container=docker"
  1153. 96 export "XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR"
  1154. 97 export "WAYLAND_DISPLAY="
  1155. 98 export "COLUMNS=128"
  1156. 99 export "LINES=56"
  1157. 100
  1158. 101 env >> /x11docker/environment
  1159. 102 verbose "Container environment:
  1160. 103 $(env | sort)"
  1161. 104 verbose "Copy of environment stored in /x11docker/environment"
  1162. 105
  1163. 106 cd "$HOME"
  1164. 107
  1165. 108 verbose -d Running image command: /x11docker/tini -- $Dbus /usr/local/bin/entrypoint.sh
  1166. 109 $Exec /x11docker/tini -- $Dbus /usr/local/bin/entrypoint.sh >>/x11docker/stdout 2>>/x11docker/stderr
  1167. 110 # Ready for docker run
  1168.  
  1169. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/container.log <==
  1170. docker: Error response from daemon: invalid volume specification: '/run/user/1000/:/:rw': invalid mount config for type "bind": invalid specification: destination can't be '/'.
  1171. See 'docker run --help'.
  1172.  
  1173. ==> /home/docker/.cache/x11docker/erichough-kodi-931691/message.log <==
  1174. x11docker[611.06]: Waiting for file creation of /home/docker/.cache/x11docker/erichough-kodi-931691/xtermready
  1175.  
  1176. x11docker[611.09]: Found new created file /home/docker/.cache/x11docker/erichough-kodi-931691/xtermready
  1177.  
  1178. x11docker[611.09]: Container ID:
  1179.  
  1180. x11docker[611.33]: Waiting since 3s for /home/docker/.cache/x11docker/erichough-kodi-931691/container.pid1pid to have content, will wait up to 32000 seconds.
  1181.  
  1182. x11docker ERROR: Startup of docker failed. Did not receive a container ID.
  1183.  
  1184. Last lines of container log:
  1185. "sha256:0169ceb0fcdaad5658a52678d81983794533708b0403456e5a5dab4950fa1ebf"
  1186. ]
  1187. },
  1188. "Metadata": {
  1189. "LastTagTime": "0001-01-01T00:00:00Z"
  1190. }
  1191. }
  1192. ]
  1193. docker: Error response from daemon: invalid volume specification: '/run/user/1000/:/:rw': invalid mount config for type "bind": invalid specification: destination can't be '/'.
  1194. See 'docker run --help'.
  1195.  
  1196. Type 'x11docker --help' for usage information
  1197. Debug options: '--verbose' (full log) or '--debug' (log excerpt).
  1198. Logfile will be: /home/docker/.cache/x11docker/x11docker.log
  1199. Please report issues at https://github.com/mviereck/x11docker
  1200.  
  1201. x11docker[611.38]: Terminating x11docker.
  1202.  
  1203. x11docker[611.40]: time to say goodbye (finish-subshell)
  1204.  
  1205. x11docker[611.41]: time to say goodbye (main)
  1206.  
  1207. x11docker[611.42]: Terminating x11docker.
  1208.  
  1209. x11docker[611.50]: Terminating 3596 (containershell) x11docker: 3596 tty3 00:00:00 bash
  1210.  
  1211. x11docker[611.51]: time to say goodbye (watchpidlist)
  1212.  
  1213. x11docker[611.60]: Terminating 3204 (watchmessagefifo) x11docker: 3204 tty3 00:00:00 bash
  1214.  
  1215. x11docker[611.88]: time to say goodbye (finish)
  1216.  
  1217. x11docker[611.89]: Exitcode 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement