FSL Version 6.04 maybe missing files using docker run --rm repronim/neurodocker:master generate singularity
Greetings,
Singularity image created via:
docker run --rm repronim/neurodocker:master generate singularity --base=debian:stretch --pkg-manager=apt
--freesurfer version=7.1.1 method=binaries --copy license.txt /opt/freesurfer-7.1.1/
--fsl version=6.0.4 method=binaries
--afni version=latest method=binaries install_r_pkgs='true' install_python3='true'
--dcm2niix version=latest method=source
Using Singularity 3.5.3
FSL 6.0.4 seems to be missing some files e.g. I get errors like:
/opt/fsl-6.0.4/bin/fslswapdim: 155: /opt/fsl-6.0.4/bin/fslswapdim: /opt/fsl-6.0.4/bin/imcp: not found
Did not notice any FSL related errors while building the container (log attached):
- echo Downloading FSL ... Downloading FSL ...
- mkdir -p /opt/fsl-6.0.4
- curl -fsSL --retry 5+ https://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.4-centos6_64.tar.gz tar -xz -C /opt/fsl-6.0.4 --strip-components 1
- sed -i $isource $FSLDIR/etc/fslconf/fsl.sh /neurodocker/startup.sh
- apt-get update -qq
- apt-get install -y -q --no-install-recommends ed gsl-bin libglib2.0-0 libglu1-mesa-dev libglw1-mesa libgomp1 libjpeg62 libnlopt-dev libxm4 multiarch-support netpbm python3 r-base r-base-dev tcsh xfonts-base xvfb
Any thoughts?
Adding:
bash /opt/fsl-6.0.4/etc/fslconf/fslpython_install.sh -f /opt/fsl-6.0.4 after sed -i '$isource $FSLDIR/etc/fslconf/fsl.sh' $ND_ENTRYPOINT
in the singularity recipe file seems to fix the issue...but now the singularity image is 3GB larger 0_0
On the positive side, fsleyes also works now.
thanks @vzachari for the report. this looks like a bug in this line https://github.com/ReproNim/neurodocker/blob/f104933e7faf01ed3da7e3201cea469f9ddd87fe/neurodocker/templates/fsl.yaml#L55
fsl 6.0.4 should be caught in that if statement. in the future, we should come up with a more general scheme for when to run the fslpython isntallation.
but now the singularity image is 3GB larger 0_0
the fsl python distribution is quite large :/
Apologies for bringing up a somewhat related issue.
When generating an ubuntu:xenial image using the singularity.def file from neurodocker, when I get to this section of the file:
sed -i '$isource $FSLDIR/etc/fslconf/fsl.sh' $ND_ENTRYPOINT
bash -c 'bash -x /opt/fsl-6.0.0/etc/fslconf/fslpython_install.sh -f /opt/fsl-6.0.0'
The build process fails with
+ bash -c bash -x /opt/fsl-6.0.0/etc/fslconf/fslpython_install.sh -f /opt/fsl-6.0.0
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Appears to be related to this issue reported on the singularity issue tracker.
@ajschadler12 - thanks for the report and thanks for linking the singularity issue. could you please open a new issue? we can discuss there. one thing i would want to know is whether /opt/fsl-6.0.0/etc/fslconf/fslpython_install.sh exists in the container (and if any of the parent directories exist).
This issue is stale because it has been open for 30 days with no activity.