Closed prvst closed 8 years ago
@BioDocker/contributors
what about adding a tag: "installed at:
I would like to see one single location that the user can rely on.
What about /biodocker/bin
?
@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?
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.
@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)
@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,
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
.
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.
Yes, I agree, it's cleaner and more clearly separates concerns.
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.
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