Why can't I seem to launch RuneScape's NXT Client using Docker on openSUSE?

Hi,

For some bizarre reason I could run RuneScape’s NXT Client using Docker on Fedora 25 without a problem, but on openSUSE Tumbleweed I can’t do so, despite using the exact same Docker container… Here is a Docker container I created specifically for launching RuneScape’s NXT Client on non-Debian 64-bit Linux distributions like Fedora and openSUSE. Running:


$ xhost+
$ docker run --rm \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=:0 \
  -v ${HOME}/.runescape:/home/runescape/.runescape \
  -v ${HOME}/Jagex:/home/runescape/Jagex \
fusion809/runescape-launcher /usr/bin/runescape-launcher

(where $ denotes a standard user console, as opposed to a root console which I will denote with #) would launch it fine on Fedora 25, but on openSUSE Tumbleweed (wherein Docker has been installed from the official Tumbleweed OSS repo using zypper) running the exact same command causes nothing to happen… No GUI for RuneScape starting, no command-line output (except

access control disabled, clients can connect from any host

from the xhost + command), nothing! As for my Docker set up I have installed Docker with zypper (using

# zypper in -y docker

, where # denotes a root console), I have also added my user account to the docker group with

# gpasswd -a fusion809 docker

and enabled the Docker daemon with

# systemctl enable docker

and restarted my openSUSE Tumbleweed system. I really don’t know what else I am expected to do before this will start working.

Thanks for your time,
Brenton

If relevant the docker run command to launch the NXT Client does hang for a while before it exits. By hangs I mean it stays in this state:

http://i.imgur.com/l3Y2JaZ.png

in this state (where the cursor keeps flashing) for a while before it finally exits and the shell is ready for new lines of input.

If relevant I have tried running the kdeneon/plasma-dev:dev-unstable Docker container in a Xephyr window (it’s meant to launch a KDE Neon-like system in the Xephyr window) on openSUSE Tumbleweed and while running this container on Fedora 25 ran without issue running it on Tumbleweed returned the output:

Unable to find image 'kdeneon/plasma:dev-unstable' locally
dev-unstable: Pulling from kdeneon/plasma
8aec416115fd: Pull complete  
695f074e24e3: Pull complete  
946d6c48c2a7: Pull complete  
bc7277e579f0: Pull complete  
2508cbcde94b: Pull complete  
3059f9762b34: Pull complete  
ce81a6629a70: Pull complete  
6172517365a5: Pull complete  
22048dab2da8: Pull complete  
cbcbc20affd7: Pull complete  
da6ed26fc370: Pull complete  
633a1015398b: Pull complete  
9ef8546a8d56: Pull complete  
a7a47a9321f5: Pull complete  
83f44dcf726e: Pull complete  
1505f0964485: Pull complete  
e3f70cb8d893: Pull complete  
5eb6bc992279: Pull complete  
2c636eb668a2: Pull complete  
Digest: sha256:67477e2ad5686cda29b34d1196aef1141063bebf9cfa181ca169942c4b3c6a3a
Status: Downloaded newer image for kdeneon/plasma:dev-unstable
(EE)  
(EE) Backtrace:
(EE) 0: Xephyr (xorg_backtrace+0x4a) [0x5b0c0a]
(EE) 1: Xephyr (0x400000+0x1b4999) [0x5b4999]
(EE) 2: /lib64/libpthread.so.0 (0x7f83a8c38000+0x11080) [0x7f83a8c49080]
(EE) 3: Xephyr (0x400000+0x1176e8) [0x5176e8]
(EE) 4: Xephyr (0x400000+0x117083) [0x517083]
(EE) 5: Xephyr (0x400000+0x1165ea) [0x5165ea]
(EE) 6: Xephyr (InitExtensions+0x43) [0x4af0d3]
(EE) 7: Xephyr (0x400000+0x6b387) [0x46b387]
(EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf1) [0x7f83a88b9291]
(EE) 9: Xephyr (_start+0x2a) [0x42b09a]
(EE)  
(EE) Segmentation fault at address 0xb6df00
(EE)  
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)  
[1]  + 25578 abort (core dumped)  Xephyr -screen 1024x768 :1
QXcbConnection: Could not connect to display :1
xset:  unable to open display ":1"
xsetroot:  unable to open display ':1'
startkde: Starting up...
xprop:  unable to open display ':1'
xprop:  unable to open display ':1'
dbus-update-activation-environment: error: unable to connect to D-Bus: /usr/bin/dbus-launch terminated abnorma
lly with the following error: Autolaunch error: X11 initialization failed.

startkde: Could not sync environment to dbus.
Error: Can't open display: :1

and caused the Xephyr window and Docker to exit.

For starters,
Your last post (above) which displays your running the kdeneon/plasma-dev unstable container indicates the image is broken. I guess that’s a byproduct of running their unstable image, is there a reason why you need their bleeding edge unstable image?

As for everything else,
You haven’t posted enough for anyone to replicate what you are doing, so no one can be sure what you might be doing that’s not working (unless you really are using a broken Docker image).

If I were to guess, sometime between the time you created your Docker container on your Fedora and your current attempt on openSUSE, the base image changed and broke.

To prevent this kind of thing from happening in Docker, you’re supposed to create a Docker file which contains everything in your recipe for how to build your container… Its contents will start with a base image of your choice, then modify it according to your wishes including any possible patches, updates, install additional packages, initiating anything you want. In other words, everything you’re likely running in a console should probably be in your custom Docker file.

There have been a number of “Getting Started” exercises posted at www.docker.com, for anyone learning on openSUSE I modified the most basic guides with openSUSE commands and posted to my Wiki at the following link
https://en.opensuse.org/User:Tsu2#Docker

The guide for creating a simple Docker file is at
https://en.opensuse.org/User:Tsu2/docker-build-tutorial-1

Typically,
When asking for Docker help, you should

  • Post the Docker file you created and are using
    or
  • Besides what you posted in your first post, you also need to describe what image you are using and the commands you use to modify the image and then the command you use to launch your container… In other words, pretty much all the things that would be in a Docker file.

HTH,
TSU

There is a Dockerfile which you would have found if you clicked on the “Source Repository” link on the Docker hub page I linked you to (I would have thought you would have found it there, but alas I was wrong, sorry), which for your convenience I have provided here. In that repository is the Dockerfile. It has remained unchanged since I switched over from Fedora to openSUSE… I have also run the stable KDE Neon image in Xephyr and it too failed to launch Neon in a Xephyr window and gave the exact same error. Namely here is the exact copy and paste output, with the exact commands I entered to get said output:


$ Xephyr -screen 1024x768 :1 &
docker run -v /tmp/.X11-unix:/tmp/.X11-unix kdeneon/plasma:dev-stable 

[1] 22538
Unable to find image 'kdeneon/plasma:dev-stable' locally
dev-stable: Pulling from kdeneon/plasma
8aec416115fd: Already exists 
695f074e24e3: Already exists 
946d6c48c2a7: Already exists 
bc7277e579f0: Already exists 
2508cbcde94b: Already exists 
e83df9e46daa: Pull complete 
24be55f370f5: Pull complete 
4951ddb652dd: Pull complete 
c163e81eea64: Pull complete 
56b83791010b: Pull complete 
05512517352f: Pull complete 
51a3077a4ff2: Pull complete 
d5f20291565b: Pull complete 
ac893f9366dd: Pull complete 
aafc36952856: Pull complete 
2771daf2fe0f: Pull complete 
ab2c2763fb79: Pull complete 
a61f51dff818: Pull complete 
93e7062192fd: Pull complete 
Digest: sha256:7858aa54334167c81cfb9a1c2e76f8fddecc4d4695014bd8e535c061bca4ca32
Status: Downloaded newer image for kdeneon/plasma:dev-stable
(EE) 
(EE) Backtrace:
(EE) 0: Xephyr (xorg_backtrace+0x4a) [0x5b0c0a]
(EE) 1: Xephyr (0x400000+0x1b4999) [0x5b4999]
(EE) 2: /lib64/libpthread.so.0 (0x7f4c6a1be000+0x11080) [0x7f4c6a1cf080]
(EE) 3: Xephyr (0x400000+0x1176e8) [0x5176e8]
(EE) 4: Xephyr (0x400000+0x117083) [0x517083]
(EE) 5: Xephyr (0x400000+0x1165ea) [0x5165ea]
(EE) 6: Xephyr (InitExtensions+0x43) [0x4af0d3]
(EE) 7: Xephyr (0x400000+0x6b387) [0x46b387]
(EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf1) [0x7f4c69e3f291]
(EE) 9: Xephyr (_start+0x2a) [0x42b09a]
(EE) 
(EE) Segmentation fault at address 0xb6df00
(EE) 
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE) 
[1]  + 22538 abort (core dumped)  Xephyr -screen 1024x768 :1
QXcbConnection: Could not connect to display :1
xset:  unable to open display ":1"
xsetroot:  unable to open display ':1'
startkde: Starting up...
xprop:  unable to open display ':1'
xprop:  unable to open display ':1'
dbus-update-activation-environment: error: unable to connect to D-Bus: /usr/bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.


startkde: Could not sync environment to dbus.
Error: Can't open display: :1

Further evidence that openSUSE Tumbleweed’s docker package is likely at fault: I just fired up a VirtualBox VM for Fedora 24 and installed Docker in it. Then I ran my RuneScape container and the NXT Client launched without a hitch. Likewise I launched the stable KDE Neon container in Xephyr in this same Fedora 24 VM without a problem… Is it time for me to file a bug report on this?

Before doing anything,

Post the docker versions running in Fedora so we can compare with what is running in your Tumbleweed (you might as well post the version running in your Tumbleweed also, since TW and its packages change often).

TSU

By “docker hub file” you mean the following, although technically true, it’s the maintainer’s file and not your own

$ xhost+$ docker run --rm \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=:0 \
  -v ${HOME}/.runescape:/home/runescape/.runescape \
  -v ${HOME}/Jagex:/home/runescape/Jagex \
fusion809/runescape-launcher /usr/bin/runescape-launcher

BTW -
I ran the above(without the xhost+ command) as root on a 42.1, and it resulted in what I would consider a probable partial success… It didn’t result in a segmentation fault but it did result in an error “No protocol specified” which might be related to the security context I tried to run the container (or not). Or, it could simply mean that I don’t have a runscape MMORPG account so fail logging in.

The version of docker I did this test

docker --version
Docker version 1.9.1, build a34a1d5

TSU

BTW -
The steps you took to add your normal User to be able to launch a docker container is something I discourage related to all virtualization and isolation technologies… IMO it’s nearly the same as logging in as root with the possible consequence that malware or an intruder could compromise not just your machine but other machines in your network.

If you really want to do that, you should take extra security measures like configuring your docker daemon to start manually only, and not “enabled” to start on boot… So that you can control when that capability exists on your machine.

TSU

Docker version on Fedora is 1.13.0 (as I installed it using the official Docker installation instructions for Fedora https://docs.docker.com/engine/installation/linux/fedora/), while for Tumbleweed it is 1.12.6 (as evidently the Tumbleweed packagers have fallen behind and not quite updated to 1.13.0 even though 1.13.0 has been out since 19 Jan 2017). It resulted in the “No protocol specified” error because you didn’t run the xhost + command, I didn’t add that command for the fun of it, it was so that the Docker container could access your X server.

Hi,

I run this on openSUSE Leap 42.2 with docker 1.12.6:

docker run --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 fusion809/runescape-launcher /usr/bin/runescape-launcher

and it worked perfectly (except for the sound).

The only difference is that I was not “mounting” the home directories.