Skip to content

Commit 7c24d8c

Browse files
committed
enh: generate dockerfile using neurodocker
1 parent edf95a3 commit 7c24d8c

File tree

4 files changed

+336
-271
lines changed

4 files changed

+336
-271
lines changed

install/Dockerfile

Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
# Generated by Neurodocker version 0.4.1
2+
# Timestamp: 2018-08-22 14:03:54 UTC
3+
#
4+
# Thank you for using Neurodocker. If you discover any issues
5+
# or ways to improve this software, please submit an issue or
6+
# pull request on our GitHub repository:
7+
#
8+
# https://github.com/kaczmarj/neurodocker
9+
10+
FROM neurodebian:stretch
11+
12+
ARG DEBIAN_FRONTEND="noninteractive"
13+
14+
ENV LANG="en_US.UTF-8" \
15+
LC_ALL="en_US.UTF-8" \
16+
ND_ENTRYPOINT="/neurodocker/startup.sh"
17+
RUN export ND_ENTRYPOINT="/neurodocker/startup.sh" \
18+
&& apt-get update -qq \
19+
&& apt-get install -y -q --no-install-recommends \
20+
apt-utils \
21+
bzip2 \
22+
ca-certificates \
23+
curl \
24+
locales \
25+
unzip \
26+
&& apt-get clean \
27+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
28+
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
29+
&& dpkg-reconfigure --frontend=noninteractive locales \
30+
&& update-locale LANG="en_US.UTF-8" \
31+
&& chmod 777 /opt && chmod a+s /opt \
32+
&& mkdir -p /neurodocker \
33+
&& if [ ! -f "$ND_ENTRYPOINT" ]; then \
34+
echo '#!/usr/bin/env bash' >> "$ND_ENTRYPOINT" \
35+
&& echo 'set -e' >> "$ND_ENTRYPOINT" \
36+
&& echo 'if [ -n "$1" ]; then "$@"; else /usr/bin/env bash; fi' >> "$ND_ENTRYPOINT"; \
37+
fi \
38+
&& chmod -R 777 /neurodocker && chmod a+s /neurodocker
39+
40+
ENTRYPOINT ["/neurodocker/startup.sh"]
41+
42+
RUN apt-get update -qq \
43+
&& apt-get install -y -q --no-install-recommends \
44+
graphviz \
45+
tree \
46+
git-annex-standalone \
47+
vim \
48+
emacs-nox \
49+
nano \
50+
less \
51+
ncdu \
52+
tig \
53+
sed \
54+
build-essential \
55+
libsm-dev \
56+
libx11-dev \
57+
libxt-dev \
58+
libxext-dev \
59+
libglu1-mesa \
60+
&& apt-get clean \
61+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
62+
63+
ENV FREESURFER_HOME="/opt/freesurfer-6.0.0-min" \
64+
PATH="/opt/freesurfer-6.0.0-min/bin:$PATH"
65+
RUN apt-get update -qq \
66+
&& apt-get install -y -q --no-install-recommends \
67+
bc \
68+
libgomp1 \
69+
libxmu6 \
70+
libxt6 \
71+
perl \
72+
tcsh \
73+
&& apt-get clean \
74+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
75+
&& echo "Downloading FreeSurfer ..." \
76+
&& mkdir -p /opt/freesurfer-6.0.0-min \
77+
&& curl -fsSL --retry 5 https://dl.dropbox.com/s/nnzcfttc41qvt31/recon-all-freesurfer6-3.min.tgz \
78+
| tar -xz -C /opt/freesurfer-6.0.0-min --strip-components 1 \
79+
&& sed -i '$isource "/opt/freesurfer-6.0.0-min/SetUpFreeSurfer.sh"' "$ND_ENTRYPOINT"
80+
81+
ENV ANTSPATH="/opt/ants-b43df4bfc8/bin" \
82+
PATH="/opt/ants-b43df4bfc8/bin:$PATH" \
83+
LD_LIBRARY_PATH="/opt/ants-b43df4bfc8/lib:$LD_LIBRARY_PATH"
84+
RUN apt-get update -qq \
85+
&& apt-get install -y -q --no-install-recommends \
86+
cmake \
87+
g++ \
88+
gcc \
89+
git \
90+
make \
91+
zlib1g-dev \
92+
&& apt-get clean \
93+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
94+
&& mkdir -p /tmp/ants/build \
95+
&& git clone https://github.com/ANTsX/ANTs.git /tmp/ants/source \
96+
&& cd /tmp/ants/source \
97+
&& git fetch --tags \
98+
&& git checkout b43df4bfc8 \
99+
&& cd /tmp/ants/build \
100+
&& cmake -DBUILD_SHARED_LIBS=ON /tmp/ants/source \
101+
&& make -j 4 \
102+
&& mkdir -p /opt/ants-b43df4bfc8 \
103+
&& mv bin lib /opt/ants-b43df4bfc8/ \
104+
&& mv /tmp/ants/source/Scripts/* /opt/ants-b43df4bfc8/bin \
105+
&& rm -rf /tmp/ants
106+
107+
RUN ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
108+
109+
ENV CONDA_DIR="/opt/miniconda-latest" \
110+
PATH="/opt/miniconda-latest/bin:$PATH"
111+
RUN export PATH="/opt/miniconda-latest/bin:$PATH" \
112+
&& echo "Downloading Miniconda installer ..." \
113+
&& conda_installer="/tmp/miniconda.sh" \
114+
&& curl -fsSL --retry 5 -o "$conda_installer" https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh \
115+
&& bash "$conda_installer" -b -p /opt/miniconda-latest \
116+
&& rm -f "$conda_installer" \
117+
&& conda update -yq -nbase conda \
118+
&& conda config --system --prepend channels conda-forge \
119+
&& conda config --system --set auto_update_conda false \
120+
&& conda config --system --set show_channel_urls true \
121+
&& sync && conda clean -tipsy && sync \
122+
&& conda create -y -q --name mb \
123+
&& conda install -y -q --name mb \
124+
python=3.6 \
125+
pip \
126+
jupyter \
127+
cmake \
128+
mesalib \
129+
vtk \
130+
pandas \
131+
matplotlib \
132+
colormath \
133+
nipype \
134+
&& sync && conda clean -tipsy && sync \
135+
&& bash -c "source activate mb \
136+
&& pip install --no-cache-dir \
137+
datalad[full] \
138+
duecredit" \
139+
&& rm -rf ~/.cache/pip/* \
140+
&& sync \
141+
&& sed -i '$isource activate mb' $ND_ENTRYPOINT
142+
143+
WORKDIR /opt
144+
145+
RUN mkdir -p /opt/data && cd /opt/data && \
146+
curl -sSL https://osf.io/download/rh9km/?revision=2 -o templates.zip && \
147+
unzip templates.zip && \
148+
rm -f /opt/data/templates.zip && \
149+
curl -sSL https://osf.io/download/d2cmy/ -o OASIS-TRT-20_jointfusion_DKT31_CMA_labels_in_OASIS-30_v2.nii.gz && \
150+
curl -sSL https://osf.io/download/qz3kx/ -o OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \
151+
tar zxf OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \
152+
rm OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \
153+
curl -sSL https://osf.io/download/dcf94/ -o OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz && \
154+
tar zxf OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz && \
155+
rm OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz
156+
157+
RUN bash -c 'source /opt/miniconda-latest/etc/profile.d/conda.sh && \
158+
conda activate mb && \
159+
git clone https://github.com/nipy/mindboggle.git && \
160+
cd /opt/mindboggle && \
161+
git checkout edf95a3 && \
162+
python setup.py install && \
163+
sed -i "s/7.0/8.1/g" vtk_cpp_tools/CMakeLists.txt && \
164+
mkdir /opt/vtk_cpp_tools && \
165+
cd /opt/vtk_cpp_tools && \
166+
cmake /opt/mindboggle/vtk_cpp_tools && \
167+
make'
168+
169+
ENV vtk_cpp_tools="/opt/vtk_cpp_tools"
170+
171+
RUN bash -c 'source /opt/miniconda-latest/etc/profile.d/conda.sh && \
172+
conda activate mb && \
173+
conda install -y flask && \
174+
git clone https://github.com/akeshavan/roygbiv && \
175+
cd /opt/roygbiv && \
176+
git checkout fbbf31c29952d0ea22ed05d98e0a5a7e7d0827f9 && \
177+
python setup.py install && \
178+
cd /opt && \
179+
git clone https://github.com/akeshavan/nbpapaya && \
180+
cd /opt/nbpapaya && \
181+
git checkout 60119b6e1de651f250af26a3541d9cb18e971526 && \
182+
git submodule update --init --recursive && \
183+
python setup.py install && \
184+
rm -rf /opt/roygbiv /opt/nbpapaya'
185+
186+
RUN echo '{ \
187+
\n "pkg_manager": "apt", \
188+
\n "instructions": [ \
189+
\n [ \
190+
\n "base", \
191+
\n "neurodebian:stretch" \
192+
\n ], \
193+
\n [ \
194+
\n "install", \
195+
\n [ \
196+
\n "graphviz", \
197+
\n "tree", \
198+
\n "git-annex-standalone", \
199+
\n "vim", \
200+
\n "emacs-nox", \
201+
\n "nano", \
202+
\n "less", \
203+
\n "ncdu", \
204+
\n "tig", \
205+
\n "sed", \
206+
\n "build-essential", \
207+
\n "libsm-dev", \
208+
\n "libx11-dev", \
209+
\n "libxt-dev", \
210+
\n "libxext-dev", \
211+
\n "libglu1-mesa" \
212+
\n ] \
213+
\n ], \
214+
\n [ \
215+
\n "freesurfer", \
216+
\n { \
217+
\n "version": "6.0.0-min" \
218+
\n } \
219+
\n ], \
220+
\n [ \
221+
\n "ants", \
222+
\n { \
223+
\n "version": "b43df4bfc8", \
224+
\n "method": "source", \
225+
\n "cmake_opts": "-DBUILD_SHARED_LIBS=ON", \
226+
\n "make_opts": "-j 4" \
227+
\n } \
228+
\n ], \
229+
\n [ \
230+
\n "run", \
231+
\n "ln -s /usr/lib/x86_64-linux-gnu /usr/lib64" \
232+
\n ], \
233+
\n [ \
234+
\n "miniconda", \
235+
\n { \
236+
\n "conda_install": [ \
237+
\n "python=3.6", \
238+
\n "pip", \
239+
\n "jupyter", \
240+
\n "cmake", \
241+
\n "mesalib", \
242+
\n "vtk", \
243+
\n "pandas", \
244+
\n "matplotlib", \
245+
\n "colormath", \
246+
\n "nipype" \
247+
\n ], \
248+
\n "pip_install": [ \
249+
\n "datalad[full]", \
250+
\n "duecredit" \
251+
\n ], \
252+
\n "create_env": "mb", \
253+
\n "activate": true \
254+
\n } \
255+
\n ], \
256+
\n [ \
257+
\n "workdir", \
258+
\n "/opt" \
259+
\n ], \
260+
\n [ \
261+
\n "run", \
262+
\n "mkdir -p /opt/data && cd /opt/data && \\\\n curl -sSL https://osf.io/download/rh9km/?revision=2 -o templates.zip && \\\\n unzip templates.zip && \\\\n rm -f /opt/data/templates.zip && \\\\n curl -sSL https://osf.io/download/d2cmy/ -o OASIS-TRT-20_jointfusion_DKT31_CMA_labels_in_OASIS-30_v2.nii.gz && \\\\n curl -sSL https://osf.io/download/qz3kx/ -o OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \\\\n tar zxf OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \\\\n rm OASIS-TRT_brains_to_OASIS_Atropos_template.tar.gz && \\\\n curl -sSL https://osf.io/download/dcf94/ -o OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz && \\\\n tar zxf OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz && \\\\n rm OASIS-TRT_labels_to_OASIS_Atropos_template.tar.gz" \
263+
\n ], \
264+
\n [ \
265+
\n "run_bash", \
266+
\n "source /opt/miniconda-latest/etc/profile.d/conda.sh && \\\\n conda activate mb && \\\\n git clone https://github.com/nipy/mindboggle.git && \\\\n cd /opt/mindboggle && \\\\n git checkout edf95a3 && \\\\n python setup.py install && \\\\n sed -i \"s/7.0/8.1/g\" vtk_cpp_tools/CMakeLists.txt && \\\\n mkdir /opt/vtk_cpp_tools && \\\\n cd /opt/vtk_cpp_tools && \\\\n cmake /opt/mindboggle/vtk_cpp_tools && \\\\n make" \
267+
\n ], \
268+
\n [ \
269+
\n "env", \
270+
\n { \
271+
\n "vtk_cpp_tools": "/opt/vtk_cpp_tools" \
272+
\n } \
273+
\n ], \
274+
\n [ \
275+
\n "run_bash", \
276+
\n "source /opt/miniconda-latest/etc/profile.d/conda.sh && \\\\n conda activate mb && \\\\n conda install -y flask && \\\\n git clone https://github.com/akeshavan/roygbiv && \\\\n cd /opt/roygbiv && \\\\n git checkout fbbf31c29952d0ea22ed05d98e0a5a7e7d0827f9 && \\\\n python setup.py install && \\\\n cd /opt && \\\\n git clone https://github.com/akeshavan/nbpapaya && \\\\n cd /opt/nbpapaya && \\\\n git checkout 60119b6e1de651f250af26a3541d9cb18e971526 && \\\\n git submodule update --init --recursive && \\\\n python setup.py install && \\\\n rm -rf /opt/roygbiv /opt/nbpapaya" \
277+
\n ] \
278+
\n ] \
279+
\n}' > /neurodocker/neurodocker_specs.json

0 commit comments

Comments
 (0)