Hi,
I am trying to build an AppImage of my Qt based tool to be used in a Docker image. I don’t want to change the image in order to support my tool and even if that were possible, the image contains an older version of Qt on which many things depend. Using an AppImage seems like a good fit in this case.
I’m using Ubuntu 18.04 so I couldn’t build an AppImage out of the box due to backwards compatibility constraints so I made a dev Docker image based on 16.04 for the purposes of building my AppImage.
The AppImage works fine on my host system but when I try to use it in the Docker image it tries to use the system installed version of Qt and fails.
I used the ./tool.AppImage --appimage-mount
to look at the binary and ldd
resolves the Qt libraries to /usr/lib/x86_64-linux-gnu/libQt...
in the Docker whereas on the host it resolves correctly to /tmp/.mount_tool-9874u/./lib/libQt...
.
I guess this is something to do with ld.so.conf precedence rules? Or am I using AppImage incorrectly?
I build my AppImage in my dev Docker using export PATH=/path/to/local/Qt/gcc_64/bin:$PATH;linuxdeployqt-6-x86_64.AppImage --appimage-extract-and-run ./tool.desktop -appimage
Any help appreciated, thanks!