Open martin-g opened 8 months ago
@martin-g thanks for the detailed report. Yes it should be possible to make the shell configureable. And yes we have chosen this shell because this is the most common one that should be everywhere.
In addition would be a good idea to make DIRNAME
configurable as the images - https://github.com/galaxyproject/galaxy/blob/bc0d075d552cc10d9c452e9e0a4595b3e079301e/lib/galaxy/tool_util/deps/mulled/mulled_build.py#L60 ?
Something like
DIRNAME = os.environ.get("INVFILE_DIRNAME", os.path.dirname(__file__))
This way I could use a custom invfile.lua
if needed.
In the meantime if someone has an idea how to set umask
for /bin/sh
, I am all ears! :-)
Describe the bug
I faced an issue while trying to build a
bioconductor-**
recipe at Bioconda: https://github.com/bioconda/bioconda-recipes/pull/46177 The issue is that the Linux ARM64/aarch64 Docker images used by default bymulled-build-tool
:DEFAULT_BASE_IMAGE=quay.io/bioconda/base-glibc-busybox-bash:latest"
- https://github.com/galaxyproject/galaxy/blob/bc0d075d552cc10d9c452e9e0a4595b3e079301e/lib/galaxy/tool_util/deps/mulled/mulled_build.py#L61CONDA_IMAGE=continuumio/miniconda3:latest
- https://github.com/galaxyproject/galaxy/blob/bc0d075d552cc10d9c452e9e0a4595b3e079301e/lib/galaxy/tool_util/deps/mulled/mulled_build.py#L376C43-L376C72use
umask=027
by default.Linux ARM64:
The Linux x86_64 images use
022
as default:Both images inherit this behavior from their respective base images (Debian/Ubuntu).
I haven't tried to find why Debian (and Ubuntu) did this.
027
is more secure, but why only the Linux ARM64 image uses it ?! No idea.So, I tried to use custom Docker images that inherit from the default ones and set
umask=022
in/etc/profile
and/etc/bash.bashrc
:Now
docker run -it --rm my-mambaforge-aarch64:latest bash -c umask
prints0022
! Good!But
mulled-build
still fails me despite using my custom Docker images because the defaultinvfile.lua
uses/bin/sh ...
:I guess it uses
/bin/sh
because it is the most common one and should exist on every Linux out there.Would it be possible to make this configurable via
VAR.
?Galaxy Version and/or server at which you observed the bug
mulled-build-tool 23.2.1
To Reproduce
Execute the following on Linux ARM64 machine/VM:
It will fail with
Expected behavior
No
Permission denied
errors.Screenshots N/A
Additional context
Please ask me if you need more details!