Open yarikoptic opened 4 years ago
FWIW, here is the adjusted Singularity file with seems to be minimally sufficient list of dependencies:
Bootstrap: docker
From: neurodebian
%post
apt-get update -qqq
apt-get install -q -y libglib2.0-0 libnss3 libgtk-3-0 libx11-xcb1 libxss1 libasound2 libcanberra-gtk-module
apt-get clean
rm -rf /var/lib/apt/lists/*
Interesting, I was unaware of issues with the built app running on minimal linux systems, thanks for generating that list!
I assume these are most likely dependencies required by Chromium/Electron, I'll see if I can find more documentation on what is required by them
@yarikoptic after a bit of further thought I'm a little confused about the issue, are you trying to start the coinstac executable with a linux distro that does not have a desktop environment? If so, what would be the benefit packaging the GUI with a container that you could not view or use the application from?
a GUI != the GUI. Could have been qt , but seems to be gtk, so at least GTK libs should be explicitly listed. I have just grown a list trial by trial, could be shorter I guess ;)
@yarikoptic Can you please describe the use case here? Why would you want to install COINSTAC on a minimal Linux system?
Sorry for answering a question with a question, but overall answer would be: why would you use containers?
In my case it was -- to provide review of coinstac for JOSS, and test installation in an environment with some isolation, so possibly to minimize possible affects of running an arbitrary executable downloaded from the web. I could also recommend coinstac to distribute "stock (singularity) coinstac containers" to further simplify its deployment in some use cases where the container would come with all necessary and guaranteed to work together components.
README.md just says
downloading the tarball for linux and trying to run it on a minimally installed Debian system would not work.
Here is an example demonstrating it via singularity container environment:
```shell lena:~/proj/coinstac/coinstac-linux-x64 $> singularity pull docker://neurodebian INFO: Converting OCI blobs to SIF format INFO: Starting build... Getting image source signatures Copying blob 90fe46dd8199 done Copying blob 2075069e74d1 done Copying blob 1d55a52976dc done Copying blob 3284dbc5e3c7 done Copying blob 4db3310ee504 done Copying config 2513f2f18c done Writing manifest to image destination Storing signatures 2020/05/04 16:37:44 info unpack layer: sha256:90fe46dd819953eb995f9cc9c326130abe9dd0b3993a998e12c01d0218a0b831 2020/05/04 16:37:46 info unpack layer: sha256:2075069e74d1454ca7606aea8a4c837d5a4a48bbbeec7db4902f315c30a065f6 2020/05/04 16:37:46 info unpack layer: sha256:1d55a52976dcfb368d912bbb9bf5b585d77b47a3ae22724d84dd4a5b58817b95 2020/05/04 16:37:46 info unpack layer: sha256:3284dbc5e3c7c1fabf65ccf0f8ddba60f43a952c376673d638a786091d5e3870 2020/05/04 16:37:46 info unpack layer: sha256:4db3310ee504a8457c7d447abc1ec524f04b8ed05e1eeca779c6357eadb07ba6 INFO: Creating SIF file... INFO: Build complete: neurodebian_latest.sif singularity pull docker://neurodebian 23.19s user 2.50s system 130% cpu 19.660 total lena:~/proj/coinstac/coinstac-linux-x64 $> mkdir -p temp/{home,work}; singularity exec -W temp/work ./neurodebian_latest.sif bash Singularity> ./coinstac ./coinstac: error while loading shared libraries: libgobject-2.0.so.0: cannot open shared object file: No such file or directory ```although it can be expected to find core libraries like that on any Linux system with a configured desktop environment, there should be a list of dependencies so e.g. those who would like to create a container with coinstac did not have to discover them by trial/error