BioContainers / specs

BioContainers specifications
http://biocontainers.pro
Apache License 2.0
49 stars 12 forks source link

Users must have a way to know where the programs are inside containers #38

Closed prvst closed 8 years ago

prvst commented 9 years ago

I'm setting this as a bug because it impedes the user to run the container without knowing before the folder structures inside the containers. For some cases like DIA_Umpire, the user must know beforehand where the software is (/home/biodocker/bin/DIA-Umpire/). This is not acceptable,as it is, so we must figure out how to deal with these scenarios where the executable cant be added to the path

sauloal commented 9 years ago

@BioDocker/contributors

what about adding a tag: "installed at: " path could be:

bgruening commented 9 years ago

I would like to see one single location that the user can rely on. What about /biodocker/bin?

sauloal commented 9 years ago

@bgruening that's a great idea but in practice I have some problems with it.

/biodocker is not compliant with the linux standard folder architecture.

several programs installs both binaries and libraries. installing on biodocker would mean adding /biodocker/bin on path (not a big issue) and /biodocker/lib to the LIB env which, in my experience, often breaks installations

most programs accept make; make install and the program is installed globally. a few scripts/java do not accept installation and instead have to be called with full path (e.g.: java -jar /full/path/to/jar/file). For that I've been creating bash scripts

What do you think?

prvst commented 9 years ago

Actually it would be much better if we just add to the path all binaries, independently of their location, but some of them cant. In this case I believe they could be on the same folder as the entry point.

On Mon, Oct 5, 2015 at 8:43 AM Saulo notifications@github.com wrote:

@bgruening https://github.com/bgruening that's a great idea but in practice I have some problems with it.

/biodocker is not compliant with the linux standard folder architecture.

several programs installs both binaries and libraries. installing on biodocker would mean adding /biodocker/bin on path (not a big issue) and /biodocker/lib to the LIB env which, in my experience, often breaks installations

most programs accept make; make install and the program is installed globally. a few scripts/java do not accept installation and instead have to be called with full path (e.g.: java -jar /full/path/to/jar/file). For that I've been creating bash scripts

What do you think?

— Reply to this email directly or view it on GitHub https://github.com/BioDocker/biodocker/issues/38#issuecomment-145516043.

sauloal commented 9 years ago

@Leprevost It can't be in the same folder as the entrypoint as the user will be mounting their external folder on top of it (e.g.: /data will be overwritten by the external folder passed through -v)

bgruening commented 9 years ago

@sauloal Yeah /home/biodocker/ would be probably better. I'm not sure about this global installation scenario. I'm playing around with a master student to get all easy_install tools and all brew tools automatically in Docker. All these tools will not be build globally so a nice default location would be nice to have,

thriqon commented 9 years ago

I am that master student :raising_hand:

A default location is a good idea, but unfortunately /home/biodocker/ doesn't solve the problem of $PATH. IMHO the 'most compatible' location would be /usr/local/, which is included by default in $PATH.

bgruening commented 9 years ago

Welcome @thriqon! You can easily add /home/biodocker to the $PATH during container build. I'm not against /usr/local/ but if it's cleaner if we separate the additional binary from the rest of the system and enhances usability, I would go with a separate directory.

thriqon commented 9 years ago

Yes, I agree, it's cleaner and more clearly separates concerns.

sauloal commented 9 years ago

If you check the base image. $HOME/bin has already been added to the path. If a program can be installed system wide, it will. Otherwise, I'm placing them on home/bin, trying to stay with the expectations of the developer and the Linux standard On Oct 15, 2015 11:22, "Jonas Weber" notifications@github.com wrote:

Yes, I agree, it's cleaner and more clearly separates concerns.

— Reply to this email directly or view it on GitHub https://github.com/BioDocker/biodocker/issues/38#issuecomment-148328561.