I'm working on the sources of an application an have the release version of the application installed on the system.
How can i test the modified (and possibly buggy) application without conflicting with the version installed ?
What I want is basically virtual env but for generic applications.
I tried Docker but this has several issues :
- I can't get the X11 redirection working. I tried commands like
docker run -ti --net=host -e DISPLAY=:0.0 test-docker-geany
ordocker run -ti -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix test-docker-geany
according to some forum threads. - The docker build involves copying the whole codebase to the image as well as installing all the tools and libraries needed to compile which some are not stored in cache and installed each time. So the script takes several minutes each time you want to compile and run.
So my questions are :
Is docker the best solution for such task ? I'm sure this is a problem a lot open source contributors faces but I couldn't find other cases on the net.
If it is not the best solution what are the alternatives ?
Detailed error :
I ran the commands xhost +
and the first one I gave in my first issue and I got :
The program 'geany' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
(Details: serial 173 error_code 2 request_code 130 minor_code 3)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
The Dockerfile : https://pastebin.com/p03vaWbU
The warning was finally the cause : i just had to install gtk2-engines-pixbuf according to this thread
EDIT : I misunderstood the success. I get it to work that time because I ran an other GUI program in the docker before. In fact, I finally discovered that trying
geany
a second time just works although the first try give the error.