neurodocker icon indicating copy to clipboard operation
neurodocker copied to clipboard

No Java Runtime Environment(JRE) was found on this system.

Open mianasbat opened this issue 5 years ago • 17 comments

Hi, I followed the following steps on centos 7 and end up in "No Java Runtime Environment (JRE) was found on this system". Here are the steps:

sudo yum update && sudo yum install -y build-essential libssl-dev uuid-dev libgpgme11-dev squashfs-tools libseccomp-dev wget pkg-config git


wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz

tar -C /usr/local -zxvf go1.12.7.linux-amd64.tar.gz

export PATH=$PATH:/usr/local/go/bin

source ~/.bashrc

git clone https://github.com/sylabs/singularity.git

cd singularity

yum install openssl-devel -y

yum install libuuid-devel -y

./mconfig
cd /root/singularity/builddir
make
make install

export PATH=$PATH:/root/singularity/builddir
export PATH=$PATH:/usr/local/bin

source ~/.bashrc

singularity help

cd
wget https://github.com/kaczmarj/neurodocker/files/3462171/singularity_recipe_neuro.txt
singularity build neurosing.sif singularity_recipe_neuro.txt

Here is the error

Screenshot 2019-07-29 at 22 46 59

mianasbat avatar Jul 29 '19 21:07 mianasbat

hi @mianasbat - thanks for the report. can you please give the command you used to create the file singularity_recipe_neuro.txt? thanks.

kaczmarj avatar Aug 02 '19 14:08 kaczmarj

Hi Kaczmarj, Thanks for reply. Attached is the recipe.txt. # singularity_recipe_neuro.txt

mianasbat avatar Aug 02 '19 16:08 mianasbat

hi @mianasbat - i was able to reproduce your issue. are you attached to ubuntu:latest as a base image? switching debian:stretch works.

kaczmarj avatar Aug 30 '19 14:08 kaczmarj

@kaczmarg, I will give it a try and let you know. Many thanks.

mianasbat avatar Aug 30 '19 16:08 mianasbat

@kaczmarj I tried it today in new centos vm in virtualbox. Running it with sudo switching to debian:stretch image I got some permission errors. The final part of terminal log is attached.

termianllog.txt

mianasbat avatar Sep 05 '19 11:09 mianasbat

Thanks, can you paste the neurodocker command you used?

This looks like a bug. I will fix that soon.

The problem is that I wrote rm -rf /tmp* but singularity uses /tmp for the build, so it doesn’t like when you try to delete it...

On Sep 5, 2019, at 7:12 AM, Mian Asbat Ahmad [email protected] wrote:

@kaczmarj I tried it today in new centos vm in virtualbox. Running it with sudo switching to debian:stretch image I got some permission errors. The final part of terminal log is attached.

termianllog.txt

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

kaczmarj avatar Sep 05 '19 11:09 kaczmarj

@kaczmarj thanks for reply. Not sure about neurodocker ? I just ran as root

singularity build neurosing.sif singularity_recipe_neuro.txt

I also did

singularity build neurosing.sif singularity_recipe_neuro.txt> run_log.txt

run_log1.txt

mianasbat avatar Sep 05 '19 11:09 mianasbat

@mianasbat - can you please try again with the latest neurodocker container? kaczmarj/neurodocker:master

kaczmarj avatar Sep 18 '19 13:09 kaczmarj

@kaczmarj - for the above image I got the error

[root@localhost ~]# singularity build neurosing.sif singularity_recipe_neuro.txt
INFO:    Starting build...
Getting image source signatures
Skipping fetch of repeat blob sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6
Skipping fetch of repeat blob sha256:2525790be8a30b7ba1055f21c57a2acc666a930d7450fbc07295e4c51b392474
Skipping fetch of repeat blob sha256:cfebb70eb20ab32386beb1a013404b3872b9403702c8da348abbe9d00571322d
Skipping fetch of repeat blob sha256:92cd4890849ca69a3f6ad4891a0dc7bbc974d24a105bb9570a1692459cde5a9c
Copying config sha256:421136a398dcb5cd17ade3d4de7b6f4f7155cf985985cab2cb85f7c07a699d66
 1.88 KiB / 1.88 KiB [======================================================] 0s
Writing manifest to image destination
Storing signatures
2019/09/19 13:07:17  info unpack layer: sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6
2019/09/19 13:07:17  info unpack layer: sha256:2525790be8a30b7ba1055f21c57a2acc666a930d7450fbc07295e4c51b392474
2019/09/19 13:07:20  info unpack layer: sha256:cfebb70eb20ab32386beb1a013404b3872b9403702c8da348abbe9d00571322d
2019/09/19 13:07:21  info unpack layer: sha256:92cd4890849ca69a3f6ad4891a0dc7bbc974d24a105bb9570a1692459cde5a9c
INFO:    Running post scriptlet
+ export ND_ENTRYPOINT=/neurodocker/startup.sh
+ apt-get update -qq
/bin/sh: apt-get: not found
FATAL:   failed to execute %post proc: exit status 127
FATAL:   While performing build: while running engine: exit status 255

The image is centos I believe and it is expecting Ubuntu may be?

mianasbat avatar Sep 19 '19 12:09 mianasbat

yes looks like you are using centos but requesting the apt-get package manager, which is only for debian/ubuntu images.

can you build the image using debian:stretch as a base image and apt as package manager?

kaczmarj avatar Sep 19 '19 13:09 kaczmarj

hi @mianasbat - the command below should work for you. i know your original dockerfile installs more than spm12, but this should demonstrate how spm12 can be successfully installed.

docker run --rm kaczmarj/neurodocker:master generate docker --base=debian:jessie --pkg-manager=apt --spm version=r7219

kaczmarj avatar Sep 20 '19 17:09 kaczmarj

@kaczmarj It spit the following text. Also it is not addressing the issue with the recipe.

docker run --rm kaczmarj/neurodocker:master generate docker --base=debian:jessie --pkg-manager=apt --spm version=r7219

Unable to find image 'kaczmarj/neurodocker:master' locally
master: Pulling from kaczmarj/neurodocker
5d20c808ce19: Pull complete 
2525790be8a3: Pull complete 
800717a55ae4: Pull complete 
8494bd0b800b: Pull complete 
Digest: sha256:75ebbd7a6b8c46de1913c71cc5dfbb5d0a5b33822c4152e0e509c1e530d42e8c
Status: Downloaded newer image for kaczmarj/neurodocker:master
# Your version: 0.5.0-9-gaaa7671 Latest version: 0.5.0
# Generated by Neurodocker version 0.5.0-9-gaaa7671
# Timestamp: 2019-10-03 13:00:12 UTC
# 
# Thank you for using Neurodocker. If you discover any issues
# or ways to improve this software, please submit an issue or
# pull request on our GitHub repository:
# 
#     https://github.com/kaczmarj/neurodocker

FROM debian:jessie

ARG DEBIAN_FRONTEND="noninteractive"

ENV LANG="en_US.UTF-8" \
    LC_ALL="en_US.UTF-8" \
    ND_ENTRYPOINT="/neurodocker/startup.sh"
RUN export ND_ENTRYPOINT="/neurodocker/startup.sh" \
    && apt-get update -qq \
    && apt-get install -y -q --no-install-recommends \
           apt-utils \
           bzip2 \
           ca-certificates \
           curl \
           locales \
           unzip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
    && dpkg-reconfigure --frontend=noninteractive locales \
    && update-locale LANG="en_US.UTF-8" \
    && chmod 777 /opt && chmod a+s /opt \
    && mkdir -p /neurodocker \
    && if [ ! -f "$ND_ENTRYPOINT" ]; then \
         echo '#!/usr/bin/env bash' >> "$ND_ENTRYPOINT" \
    &&   echo 'set -e' >> "$ND_ENTRYPOINT" \
    &&   echo 'export USER="${USER:=`whoami`}"' >> "$ND_ENTRYPOINT" \
    &&   echo 'if [ -n "$1" ]; then "$@"; else /usr/bin/env bash; fi' >> "$ND_ENTRYPOINT"; \
    fi \
    && chmod -R 777 /neurodocker && chmod a+s /neurodocker

ENTRYPOINT ["/neurodocker/startup.sh"]

ENV FORCE_SPMMCR="1" \
    LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/opt/matlabmcr-2010a/v713/runtime/glnxa64:/opt/matlabmcr-2010a/v713/bin/glnxa64:/opt/matlabmcr-2010a/v713/sys/os/glnxa64:/opt/matlabmcr-2010a/v713/extern/bin/glnxa64" \
    MATLABCMD="/opt/matlabmcr-2010a/v713/toolbox/matlab"
RUN export TMPDIR="$(mktemp -d)" \
    && apt-get update -qq \
    && apt-get install -y -q --no-install-recommends \
           bc \
           libncurses5 \
           libxext6 \
           libxmu6 \
           libxpm-dev \
           libxt6 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && echo "Downloading MATLAB Compiler Runtime ..." \
    && curl -sSL --retry 5 -o /tmp/toinstall.deb http://mirrors.kernel.org/debian/pool/main/libx/libxp/libxp6_1.0.2-2_amd64.deb \
    && dpkg -i /tmp/toinstall.deb \
    && rm /tmp/toinstall.deb \
    && apt-get install -f \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && curl -fsSL --retry 5 -o "$TMPDIR/MCRInstaller.bin" https://dl.dropbox.com/s/zz6me0c3v4yq5fd/MCR_R2010a_glnxa64_installer.bin \
    && chmod +x "$TMPDIR/MCRInstaller.bin" \
    && "$TMPDIR/MCRInstaller.bin" -silent -P installLocation="/opt/matlabmcr-2010a" \
    && rm -rf "$TMPDIR" \
    && unset TMPDIR \
    && echo "Downloading standalone SPM ..." \
    && curl -fsSL --retry 5 -o /tmp/spm12.zip https://www.fil.ion.ucl.ac.uk/spm/download/restricted/utopia/previous/spm12_r7219_R2010a.zip \
    && unzip -q /tmp/spm12.zip -d /tmp \
    && mkdir -p /opt/spm12-r7219 \
    && mv /tmp/spm12/* /opt/spm12-r7219/ \
    && chmod -R 777 /opt/spm12-r7219 \
    && rm -rf /tmp/spm* \
    && /opt/spm12-r7219/run_spm12.sh /opt/matlabmcr-2010a/v713 quit \
    && sed -i '$iexport SPMMCRCMD=\"/opt/spm12-r7219/run_spm12.sh /opt/matlabmcr-2010a/v713 script\"' $ND_ENTRYPOINT

RUN echo '{ \
    \n  "pkg_manager": "apt", \
    \n  "instructions": [ \
    \n    [ \
    \n      "base", \
    \n      "debian:jessie" \
    \n    ], \
    \n    [ \
    \n      "spm12", \
    \n      { \
    \n        "version": "r7219" \
    \n      } \
    \n    ] \
    \n  ] \
    \n}' > /neurodocker/neurodocker_specs.json

mianasbat avatar Oct 03 '19 13:10 mianasbat

@mianasbat - what is the issue with the recipe? i was able to build a docker images using that recipe. what is not working for you?

kaczmarj avatar Oct 03 '19 14:10 kaczmarj

I have similar issue (i.e. No JRE found) using ubuntu 18.04 as base image, even after adding 'apt install default-jre' in the docker file. Have to switch to ubuntu 16.04 to make it run through.

Btw, would it be possible to include newer version of spm12 after r7219? Thanks.

zswgzx avatar Mar 23 '20 22:03 zswgzx

@zswgzx - the new versions are listed in #319

For the JRE issue, this is due to the old R2010a MATLAB Runtime. There are some other compiled versions of SPM12 with more recent runtimes in the dev folder, I will try to document this soon and make it more official.

gllmflndn avatar Mar 24 '20 13:03 gllmflndn

@gllmflndn has there been a solution to the JRE SPM/Matlab problem?

I am trying to create a docker image for ubuntu 20.04. All our workstations run 20.04 (with FSL, SPM, etc.) and hence I would like to have the docker container using the same OS and software version. Using debian:strech for docker works, but produces slightly different results in FSL, likely due to OS variation in floating point precision computations. Thus, I need 20.04 in the container to produce results that are consistent with running FSL on the workstation and in the container.

Long story short, the install fails with the same JRE error as described earlier. Here is the command:

neurodocker generate docker --base ubuntu:20.04 --pkg-manager apt \
 --spm12 version=r7487  --user=neuro > Dockerfile

Any help would be much appreciated!

fhopp avatar Jul 08 '21 22:07 fhopp

For the moment, there is a version of SPM12 r7771 with R2019b that we use in SPM's own Dockerfile. I don't think all of the various options are yet directly available in neurodocker (see #394), could you edit the links in the Dockerfile created by neurodocker in the meantime?

gllmflndn avatar Jul 09 '21 09:07 gllmflndn

we are closing this issue because we checked and didn't see any issue with the current example https://www.repronim.org/neurodocker/user_guide/examples.html#spm :

neurodocker generate docker \
    --pkg-manager apt \
    --base-image debian:stretch-slim \
    --spm12 version=r7771 \
> spm12-r7771.Dockerfile

docker build --tag spm12:r7771 --file spm12-r7771.Dockerfile .

[+] Building 176.2s (7/7) FINISHED
 => [internal] load build definition from spm12-r7771.Dockerfile                                                                                                          0.0s
 => => transferring dockerfile: 4.81kB                                                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                                                         0.0s
 => => transferring context: 2B                                                                                                                                           0.0s
 => [internal] load metadata for docker.io/library/debian:stretch-slim                                                                                                    1.2s
 => [1/3] FROM docker.io/library/debian:stretch-slim@sha256:abaa313c7e1dfe16069a1a42fa254014780f165d4fd084844602edbe29915e70                                              4.9s
 => => resolve docker.io/library/debian:stretch-slim@sha256:abaa313c7e1dfe16069a1a42fa254014780f165d4fd084844602edbe29915e70                                              0.0s
 => => sha256:c5cd3ffceeb25b683bf5111ea89bf8049a177e00fb237235d48076a19cc80097 529B / 529B                                                                                0.0s
 => => sha256:0e23ec2ce5e621c0e8fa57a53c7781d59d57de8c139a8a351b7236530cd85ec2 1.46kB / 1.46kB                                                                            0.0s
 => => sha256:bff3e048017eab8adaed886bad4b3c5c81f7d952b65b056dca8d6dbc198222dd 22.57MB / 22.57MB                                                                          4.3s
 => => sha256:abaa313c7e1dfe16069a1a42fa254014780f165d4fd084844602edbe29915e70 1.21kB / 1.21kB                                                                            0.0s
 => => extracting sha256:bff3e048017eab8adaed886bad4b3c5c81f7d952b65b056dca8d6dbc198222dd                                                                                 0.6s
 => [2/3] RUN export TMPDIR="$(mktemp -d)"     && apt-get update -qq     && apt-get install -y -q --no-install-recommends            bc            ca-certificates      165.1s
 => [3/3] RUN printf '{   "pkg_manager": "apt",   "existing_users": [     "root"   ],   "instructions": [     {       "name": "from_",       "kwds": {         "base_ima  0.3s
 => exporting to image                                                                                                                                                    4.5s
 => => exporting layers                                                                                                                                                   4.5s
 => => writing image sha256:92b3e654a800e4a9911a98dca9a1dd7b2fa20641b21157e870b8eec1d50eb375                                                                              0.0s
 => => naming to docker.io/library/spm12:r7771

sooyounga avatar Feb 14 '23 22:02 sooyounga