#FROM --platform=linux/amd64 ubuntu:xenial-20200114
FROM ubuntu:xenial-20200114
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"]
RUN apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
vim \
tree \
grep \
less \
wget \
make \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV PATH="/opt/dcm2niix-latest/bin:$PATH"
RUN apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
cmake \
g++ \
gcc \
git \
make \
pigz \
zlib1g-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& git clone https://github.com/rordenlab/dcm2niix /tmp/dcm2niix \
&& mkdir /tmp/dcm2niix/build \
&& cd /tmp/dcm2niix/build \
&& cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dcm2niix-latest .. \
&& make \
&& make install \
&& rm -rf /tmp/dcm2niix
ENV ANTSPATH="/opt/ants-2.2.0" \
PATH="/opt/ants-2.2.0:$PATH"
RUN echo "Downloading ANTs ..." \
&& mkdir -p /opt/ants-2.2.0 \
&& curl -fsSL --retry 5 https://dl.dropbox.com/s/2f4sui1z6lcgyek/ANTs-Linux-centos5_x86_64-v2.2.0-0740f91.tar.gz \
| tar -xz -C /opt/ants-2.2.0 --strip-components 1
ENV FREESURFER_HOME="/opt/freesurfer-6.0.1" \
PATH="/opt/freesurfer-6.0.1/bin:$PATH"
RUN apt-get update -qq \
&& apt-get install -y -q --no-install-recommends \
bc \
libgomp1 \
libxmu6 \
libxt6 \
perl \
tcsh \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& echo "Downloading FreeSurfer ..." \
&& mkdir -p /opt/freesurfer-6.0.1
RUN wget --progress=bar:force:noscroll -c --no-check-certificate https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/6.0.1/freesurfer-Linux-centos6_x86_64-stable-pub-v6.0.1.tar.gz -O - | tar -xz -C /opt/freesurfer-6.0.1 --strip-components 1 \
--exclude='freesurfer/average/mult-comp-cor' \
--exclude='freesurfer/lib/cuda' \
--exclude='freesurfer/lib/qt' \
--exclude='freesurfer/subjects/V1_average' \
--exclude='freesurfer/subjects/bert' \
--exclude='freesurfer/subjects/cvs_avg35' \
--exclude='freesurfer/subjects/cvs_avg35_inMNI152' \
--exclude='freesurfer/subjects/fsaverage3' \
--exclude='freesurfer/subjects/fsaverage4' \
--exclude='freesurfer/subjects/fsaverage5' \
--exclude='freesurfer/subjects/fsaverage6' \
--exclude='freesurfer/subjects/fsaverage_sym' \
--exclude='freesurfer/trctrain' \
&& sed -i '$isource "/opt/freesurfer-6.0.1/SetUpFreeSurfer.sh"' "$ND_ENTRYPOINT"
ENV CONDA_DIR="/opt/miniconda-latest" \
PATH="/opt/miniconda-latest/bin:$PATH"
RUN export PATH="/opt/miniconda-latest/bin:$PATH" \
&& echo "Downloading Miniconda installer ..." \
&& conda_installer="/tmp/miniconda.sh" \
&& curl -fsSL --retry 5 -o "$conda_installer" https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& bash "$conda_installer" -b -p /opt/miniconda-latest \
&& rm -f "$conda_installer" \
&& conda update -yq -nbase conda \
&& conda config --system --prepend channels conda-forge \
&& conda config --system --set auto_update_conda false \
&& conda config --system --set show_channel_urls true \
&& sync && conda clean --all && sync \
&& conda create -y -q --name neuro \
&& conda install -y -q --name neuro \
'jupyter' \
'jupyterlab' \
'matplotlib' \
'nilearn' \
'traits' \
'nipype' \
'seaborn' \
'heudiconv' \
&& sync && conda clean --all && sync
RUN wget --no-check-certificate https://ftpmirror.gnu.org/parallel/parallel-20190222.tar.bz2 \
&& bzip2 -dc parallel-20190222.tar.bz2 | tar xvf - \
&& cd parallel-20190222 \
&& ./configure && make && make install
RUN mkdir -p /workspace/assets
COPY ./license.txt /opt/freesurfer-6.0.1/license.txt
COPY ./multiproc.sh /workspace/multiproc.sh
COPY ./assets /workspace/assets
COPY ./seminar* /workspace/
COPY ./entrypoint.sh /entrypoint.sh
COPY ./heuristic.py /workspace/heuristic.py
RUN chmod +x /workspace/multiproc.sh \
/entrypoint.sh
RUN "/neurodocker/startup.sh"
#RUN "./${FREESURFER_HOME}/SetUpFreeSurfer.sh"
ENTRYPOINT ["bash", "-c", "/entrypoint.sh"]
RUN echo '{ \
\n "pkg_manager": "apt", \
\n "instructions": [ \
\n [ \
\n "base", \
\n "ubuntu:xenial-20200114" \
\n ], \
\n [ \
\n "install", \
\n [ \
\n "vim" \
\n ] \
\n ], \
\n [ \
\n "dcm2niix", \
\n { \
\n "version": "latest", \
\n "method": "source" \
\n } \
\n ], \
\n [ \
\n "ants", \
\n { \
\n "version": "2.2.0" \
\n } \
\n ], \
\n [ \
\n "freesurfer", \
\n { \
\n "version": "6.0.1" \
\n } \
\n ], \
\n [ \
\n "miniconda", \
\n { \
\n "create_env": "neuro", \
\n "python_version": "3.6", \
\n "conda_install": [ \
\n "jupyter", \
\n "jupyterlab", \
\n "matplotlib", \
\n "nilearn", \
\n "traits", \
\n "nipype" \
\n ] \
\n } \
\n ], \
\n [ \
\n "entrypoint", \
\n "/usr/local/miniconda/jupyter lab --ip=0.0.0.0 --no-browser --port=8080" \
\n ] \
\n ] \
\n}' > /neurodocker/neurodocker_specs.json