slimtoolkit / slimtoolkit/slim
how did docker slime support centos xrdp desktop?
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.4k
- Forks
- 841
- PR merge metrics
- No merged PRs in 30d
Description
Expected Behavior
I build a centos-xrdp image (https://github.com/feifeixj/docker-centos7-xrdp-english) for remote access, it's so big, 5.11GB. so I want to shim it, and I expect the shimed one would work round
Actual Behavior
but it's not. When I remote access the container, it only show me a black screen.
I check the progress,
Steps to Reproduce the Problem
-
docker-slim build --dockerfile Dockerfile --tag dcx --http-probe-off .
output:
docker-slim: message='join the Gitter channel to ask questions or to share your feedback' info='https://gitter.im/docker-slim/community'
docker-slim: message='join the Discord server to ask questions or to share your feedback' info='https://discord.gg/9tDyxYS'
docker-slim: message='Github discussions' info='https://github.com/docker-slim/docker-slim/discussions'
cmd=build info=exec message='changing continue-after from probe to nothing because http-probe is disabled'
cmd=build info=exec message='changing continue-after to enter'
cmd=build state=started
cmd=build info=params context='.' file='Dockerfile' continue.mode='enter' rt.as.user='true' keep.perms='true' target.type='dockerfile'
cmd=build state=building message="building basic image"
cmd=build info=basic.image.info tag='dcx.fat' dockerfile='Dockerfile' context='.'
cmd=build state=basic.image.build.completed
cmd=build state=image.inspection.start
cmd=build info=image id='sha256:c4e7fbd54351878a959a8f9522699abebaf6c1c837428acea723c5f126494dcc' size.bytes='5106643379' size.human='5.1 GB'
cmd=build info=image.stack name='centos:7' id='sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9' index='0'
cmd=build info=image.stack index='1' name='dcx.fat:latest' id='sha256:c4e7fbd54351878a959a8f9522699abebaf6c1c837428acea723c5f126494dcc'
cmd=build info=image.exposed_ports list='3389'
cmd=build state=image.inspection.done
cmd=build state=container.inspection.start
cmd=build info=container status='created' name='dockerslimk_16211_20220422060812' id='709828c03fc3051d5cdba40f000d6412ae57a1f2412ec89ae5f1b32757866bd9'
cmd=build info=container id='709828c03fc3051d5cdba40f000d6412ae57a1f2412ec89ae5f1b32757866bd9' status='running' name='dockerslimk_16211_20220422060812'
cmd=build info=container message='obtained IP address' ip='172.17.0.5'
cmd=build info=cmd.startmonitor status='sent'
cmd=build info=event.startmonitor.done status='received'
cmd=build info=container id='709828c03fc3051d5cdba40f000d6412ae57a1f2412ec89ae5f1b32757866bd9' target.port.list='49236' target.port.info='3389/tcp => 0.0.0.0:49236' message='YOU CAN USE THESE PORTS TO INTERACT WITH THE CONTAINER' name='dockerslimk_16211_20220422060812'
cmd=build info=continue.after mode='enter' message='provide the expected input to allow the container inspector to continue its execution'
cmd=build prompt='USER INPUT REQUIRED, PRESS WHEN YOU ARE DONE USING THE CONTAINER' -
on my win10, use "mstsc" to open a remote access windows, input xx.xx.xx.xx:49236 and click "connect", after enter username and password (user/user), it show me a totally black screen.
-
docker exec -it dockerslimk_16211_20220422060812 /bin/bash
[root@709828c03fc3 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 6 14:08 ? 00:00:32 /opt/dockerslim/bin/docker-slim-sensor -log-l
root 16 1 0 14:08 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -n -c /e
root 37 16 0 14:08 ? 00:00:00 /sbin/xrdp-sesman -n
root 38 16 0 14:08 ? 00:00:00 /sbin/xrdp -n
root 39 38 0 14:09 ? 00:00:00 [xrdp]
root 40 38 0 14:09 ? 00:00:00 [xrdp]
root 41 37 0 14:09 ? 00:00:00 /sbin/xrdp-sesman -n
user 42 41 0 14:09 ? 00:00:00 /bin/bash -l /usr/libexec/xrdp/startwm-bash.s
user 43 41 1 14:09 ? 00:00:04 Xvnc :10 -auth .Xauthority -geometry 1280x720
user 50 41 0 14:09 ? 00:00:00 /usr/sbin/xrdp-chansrv
user 83 42 0 14:09 ? 00:00:00 xrdb -nocpp -merge /etc/X11/Xresources
root 84 38 0 14:14 ? 00:00:00 [xrdp]
root 85 38 0 14:14 ? 00:00:00 /sbin/xrdp -n
user 86 37 0 14:16 ? 00:00:00 [reconnectwm.sh]
root 87 0 0 14:16 pts/0 00:00:00 /bin/bash
root 105 87 0 14:16 pts/0 00:00:00 ps -ef
compare with the container with original image:
docker exec -it aaa /bin/bash
[root@3a823e992a83 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:39 ? 00:00:03 /usr/bin/python /usr/bin/supervisord -n -c /e
root 26 1 0 11:39 ? 00:00:00 /sbin/xrdp-sesman -n
root 27 1 0 11:39 ? 00:00:00 /sbin/xrdp -n
root 30 26 0 11:39 ? 00:00:00 /sbin/xrdp-sesman -n
user 31 30 0 11:39 ? 00:00:00 xfce4-session
user 32 30 0 11:39 ? 00:00:01 Xvnc :10 -auth .Xauthority -geometry 1280x720
user 39 30 0 11:39 ? 00:00:00 /usr/sbin/xrdp-chansrv
user 79 1 0 11:39 ? 00:00:00 dbus-launch --sh-syntax --exit-with-session
user 80 1 0 11:39 ? 00:00:00 /usr/bin/dbus-daemon --fork --print-pid 5 --p
user 96 31 0 11:39 ? 00:00:00 /usr/bin/ssh-agent /home/user/.Xclients
user 98 1 0 11:39 ? 00:00:00 ibus-daemon -drx
user 102 1 0 11:39 ? 00:00:00 /usr/libexec/gvfsd
user 106 1 0 11:39 ? 00:00:00 /usr/lib64/xfce4/xfconf/xfconfd
user 113 98 0 11:39 ? 00:00:00 /usr/libexec/ibus-dconf
user 114 98 0 11:39 ? 00:00:00 /usr/libexec/ibus-ui-gtk3
user 119 1 0 11:39 ? 00:00:00 /usr/libexec/ibus-x11 --kill-daemon
user 121 1 0 11:39 ? 00:00:00 /usr/libexec/ibus-portal
user 136 1 0 11:39 ? 00:00:00 /usr/libexec/at-spi-bus-launcher
user 141 136 0 11:39 ? 00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share
user 143 1 0 11:39 ? 00:00:00 /usr/libexec/at-spi2-registryd --use-gnome-se
user 152 1 0 11:39 ? 00:00:00 /usr/libexec/dconf-service
user 156 98 0 11:39 ? 00:00:00 /usr/libexec/ibus-engine-simple
user 162 1 0 11:39 ? 00:00:00 /bin/gpg-agent --sh --daemon --write-env-file
user 164 1 0 11:39 ? 00:00:00 xfwm4
user 168 1 0 11:39 ? 00:00:00 xfce4-panel
user 170 1 0 11:39 ? 00:00:00 Thunar --daemon
user 172 1 0 11:39 ? 00:00:01 xfdesktop
user 173 1 0 11:39 ? 00:00:00 xfsettingsd
user 177 1 0 11:39 ? 00:00:00 xfce4-power-manager
user 191 1 0 11:39 ? 00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor
user 201 102 0 11:39 ? 00:00:00 /usr/libexec/gvfsd-trash --spawner :1.2 /org/
user 207 1 0 11:39 ? 00:00:00 /usr/libexec/gvfsd-metadata
user 212 168 0 11:39 ? 00:00:00 /usr/lib64/xfce4/panel/wrapper-1.0 /usr/lib64
user 213 168 0 11:39 ? 00:00:00 /usr/lib64/xfce4/panel/wrapper-1.0 /usr/lib64
user 219 1 0 11:39 ? 00:00:00 /bin/xfce4-terminal
user 223 219 0 11:39 ? 00:00:00 gnome-pty-helper
user 224 219 0 11:39 pts/0 00:00:00 bash
root 255 0 8 14:20 pts/1 00:00:00 /bin/bash
root 274 255 0 14:20 pts/1 00:00:00 ps -ef
so the shim container has no desktop process (xfce, etc.) started. why and how to solve this question?
Specifications
- Version: docker-slim version
cmd=version info=app version='linux|Transformer|1.37.5|86fbd29ab3549fa564e87e4770178480cb0542 - Platform: # docker version
Client: Docker Engine - Community
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the referenced Dockerfile and the docker-slim build command, then compare the shimmed and original container process trees around xrdp, Xvnc, and the XFCE processes. Reproduce the Windows RDP connection and determine why the shimmed container does not start the desktop session; done means the XFCE desktop appears instead of a black screen.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- desktop, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100