From 2be7bf4b407e5d56e9be62ee65764e4d03e2019a Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 19 Sep 2018 13:49:04 -0400 Subject: [PATCH 1/8] use neurodocker 0.4.1 + apt install afni --- docker/generate_dockerfiles.sh | 113 +++++++++++++++------------------ 1 file changed, 52 insertions(+), 61 deletions(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index bd1fcb637e..61da6f63c7 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -52,77 +52,68 @@ do esac done - -# neurodocker version 0.3.1-22-gb0ee069 -NEURODOCKER_IMAGE="kaczmarj/neurodocker@sha256:f15ca90803f4b89acfca55cd1c7269bf2ec2dfd95b3de1118b08afa34b87d9d1" - -# neurodebian:stretch-non-free pulled on November 3, 2017 -BASE_IMAGE="neurodebian@sha256:7590552afd0e7a481a33314724ae27f76ccedd05ffd7ac06ec38638872427b9b" +NEURODOCKER_IMAGE="kaczmarj/neurodocker:0.4.1" +# neurodebian:stretch-non-free pulled on September 19, 2018 +BASE_IMAGE="neurodebian@sha256:7cd978427d7ad215834fee221d0536ed7825b3cddebc481eba2d792dfc2f7332" NIPYPE_BASE_IMAGE="nipype/nipype:base" PKG_MANAGER="apt" DIR="$(dirname "$0")" function generate_base_dockerfile() { - docker run --rm "$NEURODOCKER_IMAGE" generate \ - --base "$BASE_IMAGE" --pkg-manager "$PKG_MANAGER" \ - --label maintainer="The nipype developers https://github.com/nipy/nipype" \ - --spm version=12 matlab_version=R2017a \ - --afni version=latest install_python2=true \ - --freesurfer version=6.0.0 min=true \ - --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tXG41MTcyXG4gKkN2dW12RVYzelRmZ1xuRlM1Si8yYzFhZ2c0RVxuIiA+IC9vcHQvZnJlZXN1cmZlci9saWNlbnNlLnR4dAo=" | base64 -d | sh' \ - --install ants apt-utils bzip2 convert3d file fsl-core fsl-mni152-templates \ - fusefat g++ git graphviz make ruby unzip xvfb \ - --add-to-entrypoint "source /etc/fsl/fsl.sh" \ - --env ANTSPATH='/usr/lib/ants' PATH='/usr/lib/ants:$PATH' \ - --run "gem install fakes3" \ - --no-check-urls > "$DIR/Dockerfile.base" + docker run --rm "$NEURODOCKER_IMAGE" generate docker \ + --base "$BASE_IMAGE" --pkg-manager "$PKG_MANAGER" \ + --label maintainer="The nipype developers https://github.com/nipy/nipype" \ + --spm12 version=r7219 \ + --freesurfer version=6.0.0-min \ + --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tXG41MTcyXG4gKkN2dW12RVYzelRmZ1xuRlM1Si8yYzFhZ2c0RVxuIiA+IC9vcHQvZnJlZXN1cmZlci9saWNlbnNlLnR4dAo=" | base64 -d | sh' \ + --install afni ants apt-utils bzip2 convert3d file fsl-core \ + fsl-mni152-templates fusefat g++ git graphviz make python ruby \ + unzip xvfb \ + --add-to-entrypoint "source /etc/fsl/fsl.sh && source /etc/afni/afni.sh" \ + --env ANTSPATH='/usr/lib/ants' \ + PATH='/usr/lib/ants:$PATH' \ + --run "gem install fakes3" \ + > "$DIR/Dockerfile.base" } function generate_main_dockerfile() { - docker run --rm "$NEURODOCKER_IMAGE" generate \ - --base "$NIPYPE_BASE_IMAGE" --pkg-manager "$PKG_MANAGER" \ - --label maintainer="The nipype developers https://github.com/nipy/nipype" \ - --env MKL_NUM_THREADS=1 OMP_NUM_THREADS=1 \ - --user neuro \ - --miniconda env_name=neuro \ - activate=true \ - --copy docker/files/run_builddocs.sh docker/files/run_examples.sh \ - docker/files/run_pytests.sh nipype/external/fsl_imglob.py /usr/bin/ \ - --copy . /src/nipype \ - --user root \ - --run 'chown -R neuro /src -&& chmod +x /usr/bin/fsl_imglob.py /usr/bin/run_*.sh -&& . /etc/fsl/fsl.sh -&& ln -sf /usr/bin/fsl_imglob.py ${FSLDIR}/bin/imglob -&& mkdir /work -&& chown neuro /work' \ - --user neuro \ - --arg PYTHON_VERSION_MAJOR=3 PYTHON_VERSION_MINOR=6 BUILD_DATE VCS_REF VERSION \ - --miniconda env_name=neuro \ - conda_install='python=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} - icu=58.1 libxml2 libxslt matplotlib mkl numpy paramiko - pandas psutil scikit-learn scipy traits=4.6.0' \ - pip_opts="-e" \ - pip_install="/src/nipype[all]" \ - --miniconda env_name=neuro \ - pip_install="grabbit==0.1.2" \ - --run-bash "mkdir -p /src/pybids - && curl -sSL --retry 5 https://github.com/INCF/pybids/tarball/0.5.1 - | tar -xz -C /src/pybids --strip-components 1 - && source activate neuro - && pip install --no-cache-dir -e /src/pybids" \ - --workdir /work \ - --label org.label-schema.build-date='$BUILD_DATE' \ - org.label-schema.name="NIPYPE" \ - org.label-schema.description="NIPYPE - Neuroimaging in Python: Pipelines and Interfaces" \ - org.label-schema.url="http://nipype.readthedocs.io" \ - org.label-schema.vcs-ref='$VCS_REF' \ - org.label-schema.vcs-url="https://github.com/nipy/nipype" \ - org.label-schema.version='$VERSION' \ - org.label-schema.schema-version="1.0" \ - --no-check-urls + docker run --rm "$NEURODOCKER_IMAGE" generate docker \ + --base "$NIPYPE_BASE_IMAGE" --pkg-manager "$PKG_MANAGER" \ + --label maintainer="The nipype developers https://github.com/nipy/nipype" \ + --env MKL_NUM_THREADS=1 \ + OMP_NUM_THREADS=1 \ + --arg PYTHON_VERSION_MAJOR=3 PYTHON_VERSION_MINOR=6 BUILD_DATE VCS_REF VERSION \ + --user neuro \ + --miniconda create_env=neuro \ + conda_install='python=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} + icu=58.1 libxml2 libxslt matplotlib mkl numpy paramiko + pandas psutil scikit-learn scipy traits=4.6.0' \ + pip_install="grabbit==0.1.2 https://github.com/INCF/pybids/tarball/0.5.1" \ + --copy docker/files/run_builddocs.sh docker/files/run_examples.sh \ + docker/files/run_pytests.sh nipype/external/fsl_imglob.py /usr/bin/ \ + --copy . /src/nipype \ + --user root \ + --run 'chown -R neuro /src + && chmod +x /usr/bin/fsl_imglob.py /usr/bin/run_*.sh + && . /etc/fsl/fsl.sh + && ln -sf /usr/bin/fsl_imglob.py ${FSLDIR}/bin/imglob + && mkdir /work + && chown neuro /work' \ + --user neuro \ + --miniconda use_env=neuro \ + pip_opts="-e" \ + pip_install="/src/nipype[all]" \ + --workdir /work \ + --label org.label-schema.build-date='$BUILD_DATE' \ + org.label-schema.name="NIPYPE" \ + org.label-schema.description="NIPYPE - Neuroimaging in Python: Pipelines and Interfaces" \ + org.label-schema.url="http://nipype.readthedocs.io" \ + org.label-schema.vcs-ref='$VCS_REF' \ + org.label-schema.vcs-url="https://github.com/nipy/nipype" \ + org.label-schema.version='$VERSION' \ + org.label-schema.schema-version="1.0" } From 32c2f42e75f4b73ad473af7e7a475d433501370b Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 19 Sep 2018 14:05:49 -0400 Subject: [PATCH 2/8] fix: put license in /opt/freesurfer-6.0.0-min/ --- docker/generate_dockerfiles.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 61da6f63c7..5bf3140606 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -66,7 +66,7 @@ function generate_base_dockerfile() { --label maintainer="The nipype developers https://github.com/nipy/nipype" \ --spm12 version=r7219 \ --freesurfer version=6.0.0-min \ - --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tXG41MTcyXG4gKkN2dW12RVYzelRmZ1xuRlM1Si8yYzFhZ2c0RVxuIiA+IC9vcHQvZnJlZXN1cmZlci9saWNlbnNlLnR4dAo=" | base64 -d | sh' \ + --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tCjUxNzIKICpDdnVtdkVWM3pUZmcKRlM1Si8yYzFhZ2c0RQoiID4gL29wdC9mcmVlc3VyZmVyLTYuMC4wLW1pbi9saWNlbnNlLnR4dA==" | base64 -d | sh' \ --install afni ants apt-utils bzip2 convert3d file fsl-core \ fsl-mni152-templates fusefat g++ git graphviz make python ruby \ unzip xvfb \ From da2fab0a116c7b2e6ab8db5e9baa4c9ea22df2de Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 19 Sep 2018 16:47:40 -0400 Subject: [PATCH 3/8] use most recent neurodocker + activate conda env --- docker/generate_dockerfiles.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 5bf3140606..f3a77a76ad 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -52,7 +52,7 @@ do esac done -NEURODOCKER_IMAGE="kaczmarj/neurodocker:0.4.1" +NEURODOCKER_IMAGE="kaczmarj/neurodocker:master@sha256:dd868878266e615335a911f4682e7a3e1b7c72fc3684c5b57f1da5122a40ee96" # neurodebian:stretch-non-free pulled on September 19, 2018 BASE_IMAGE="neurodebian@sha256:7cd978427d7ad215834fee221d0536ed7825b3cddebc481eba2d792dfc2f7332" @@ -91,6 +91,7 @@ function generate_main_dockerfile() { icu=58.1 libxml2 libxslt matplotlib mkl numpy paramiko pandas psutil scikit-learn scipy traits=4.6.0' \ pip_install="grabbit==0.1.2 https://github.com/INCF/pybids/tarball/0.5.1" \ + activate=true \ --copy docker/files/run_builddocs.sh docker/files/run_examples.sh \ docker/files/run_pytests.sh nipype/external/fsl_imglob.py /usr/bin/ \ --copy . /src/nipype \ From 4c5e76f994065c9a89d45b5eea53b5c05524bb2c Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 10 Oct 2018 09:09:39 -0400 Subject: [PATCH 4/8] use newer neurodocker and neurodebian stretch --- docker/generate_dockerfiles.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index f3a77a76ad..34712c3ca2 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -52,9 +52,10 @@ do esac done -NEURODOCKER_IMAGE="kaczmarj/neurodocker:master@sha256:dd868878266e615335a911f4682e7a3e1b7c72fc3684c5b57f1da5122a40ee96" +# neurodocker version 0.4.1-22-g7c44e01 +NEURODOCKER_IMAGE="kaczmarj/neurodocker:master@sha256:858632a7533cac100f70932749b4cfc77fc40f667f41fca208f406215cff8a27" # neurodebian:stretch-non-free pulled on September 19, 2018 -BASE_IMAGE="neurodebian@sha256:7cd978427d7ad215834fee221d0536ed7825b3cddebc481eba2d792dfc2f7332" +BASE_IMAGE="neurodebian:stretch-non-free@sha256:7cd978427d7ad215834fee221d0536ed7825b3cddebc481eba2d792dfc2f7332" NIPYPE_BASE_IMAGE="nipype/nipype:base" PKG_MANAGER="apt" From 4a29a2a14b6e0d0edd5447941e357d39f0830942 Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 10 Oct 2018 09:13:55 -0400 Subject: [PATCH 5/8] upgrade pybids to 0.6.5 from 0.5.1 --- docker/generate_dockerfiles.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 34712c3ca2..9027639942 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -91,7 +91,7 @@ function generate_main_dockerfile() { conda_install='python=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} icu=58.1 libxml2 libxslt matplotlib mkl numpy paramiko pandas psutil scikit-learn scipy traits=4.6.0' \ - pip_install="grabbit==0.1.2 https://github.com/INCF/pybids/tarball/0.5.1" \ + pip_install="grabbit==0.1.2 https://github.com/INCF/pybids/tarball/0.6.5" \ activate=true \ --copy docker/files/run_builddocs.sh docker/files/run_examples.sh \ docker/files/run_pytests.sh nipype/external/fsl_imglob.py /usr/bin/ \ From 5a43a79a5c549a66ed74c95d59608d6e4df95a03 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Mon, 29 Oct 2018 11:09:18 -0400 Subject: [PATCH 6/8] MNT: Install FSL without NeuroDebian --- docker/generate_dockerfiles.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 9027639942..303cc6243a 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -68,10 +68,11 @@ function generate_base_dockerfile() { --spm12 version=r7219 \ --freesurfer version=6.0.0-min \ --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tCjUxNzIKICpDdnVtdkVWM3pUZmcKRlM1Si8yYzFhZ2c0RQoiID4gL29wdC9mcmVlc3VyZmVyLTYuMC4wLW1pbi9saWNlbnNlLnR4dA==" | base64 -d | sh' \ - --install afni ants apt-utils bzip2 convert3d file fsl-core \ - fsl-mni152-templates fusefat g++ git graphviz make python ruby \ + --fsl version=5.0.11 \ + --install afni ants apt-utils bzip2 convert3d file \ + fusefat g++ git graphviz make python ruby \ unzip xvfb \ - --add-to-entrypoint "source /etc/fsl/fsl.sh && source /etc/afni/afni.sh" \ + --add-to-entrypoint "source /etc/afni/afni.sh" \ --env ANTSPATH='/usr/lib/ants' \ PATH='/usr/lib/ants:$PATH' \ --run "gem install fakes3" \ From e5afcc4aabca06620d761108c1acd61ef5b64774 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Mon, 29 Oct 2018 13:24:22 -0400 Subject: [PATCH 7/8] FIX: Reduce FSL hacks --- docker/generate_dockerfiles.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 303cc6243a..9de65aba89 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -99,9 +99,8 @@ function generate_main_dockerfile() { --copy . /src/nipype \ --user root \ --run 'chown -R neuro /src - && chmod +x /usr/bin/fsl_imglob.py /usr/bin/run_*.sh - && . /etc/fsl/fsl.sh - && ln -sf /usr/bin/fsl_imglob.py ${FSLDIR}/bin/imglob + && chmod +x /usr/bin/run_*.sh + && . ${FSLDIR}/etc/fslconf/fsl.sh && mkdir /work && chown neuro /work' \ --user neuro \ From 49d47da87d94c1b7afa9387c063d6eca8bec0746 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Mon, 29 Oct 2018 14:09:27 -0400 Subject: [PATCH 8/8] MNT: Revert to FSL 5.0.9 --- docker/generate_dockerfiles.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/generate_dockerfiles.sh b/docker/generate_dockerfiles.sh index 9de65aba89..70e763369d 100755 --- a/docker/generate_dockerfiles.sh +++ b/docker/generate_dockerfiles.sh @@ -68,7 +68,7 @@ function generate_base_dockerfile() { --spm12 version=r7219 \ --freesurfer version=6.0.0-min \ --run 'echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tCjUxNzIKICpDdnVtdkVWM3pUZmcKRlM1Si8yYzFhZ2c0RQoiID4gL29wdC9mcmVlc3VyZmVyLTYuMC4wLW1pbi9saWNlbnNlLnR4dA==" | base64 -d | sh' \ - --fsl version=5.0.11 \ + --fsl version=5.0.9 \ --install afni ants apt-utils bzip2 convert3d file \ fusefat g++ git graphviz make python ruby \ unzip xvfb \