Skip to content

Commit 68faba4

Browse files
committed
[TST] Add base and conda docker images #1536
1 parent 6d8efd7 commit 68faba4

File tree

2 files changed

+186
-0
lines changed

2 files changed

+186
-0
lines changed

docker/test-image-base/Dockerfile

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Copyright (c) 2016, The developers of the Stanford CRN
2+
# All rights reserved.
3+
#
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions are met:
6+
#
7+
# * Redistributions of source code must retain the above copyright notice, this
8+
# list of conditions and the following disclaimer.
9+
#
10+
# * Redistributions in binary form must reproduce the above copyright notice,
11+
# this list of conditions and the following disclaimer in the documentation
12+
# and/or other materials provided with the distribution.
13+
#
14+
# * Neither the name of crn_base nor the names of its
15+
# contributors may be used to endorse or promote products derived from
16+
# this software without specific prior written permission.
17+
#
18+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
29+
FROM ubuntu:vivid
30+
MAINTAINER Stanford Center for Reproducible Neuroscience <[email protected]>
31+
32+
# Preparations
33+
RUN ln -snf /bin/bash /bin/sh
34+
ARG DEBIAN_FRONTEND=noninteractive
35+
36+
# Update packages and install the minimal set of tools
37+
RUN apt-get update && \
38+
apt-get install -y curl \
39+
git \
40+
xvfb \
41+
bzip2 \
42+
apt-utils \
43+
gfortran \
44+
liblapack-dev \
45+
libblas-dev \
46+
libatlas-dev \
47+
libatlas-base-dev \
48+
libblas3 \
49+
libblas-common \
50+
libopenblas-dev \
51+
libxml2-dev \
52+
libxslt1-dev \
53+
libfreetype6-dev \
54+
libpng12-dev \
55+
libqhull-dev \
56+
libxft-dev \
57+
libjpeg-dev \
58+
libyaml-dev
59+
60+
61+
# Install ANTs
62+
RUN mkdir -p /opt/ants && \
63+
curl -sSL "https://2a353b13e8d2d9ac21ce543b7064482f771ce658.googledrive.com/host/0BxI12kyv2olZVFhUcGVpYWF3R3c/ANTs-Linux_Ubuntu14.04.tar.bz2" \
64+
| tar -xjC /opt/ants --strip-components 1
65+
ENV ANTSPATH /opt/ants
66+
ENV PATH $ANTSPATH:$PATH
67+
68+
# Enable neurodebian
69+
RUN curl -sSL http://neuro.debian.net/lists/vivid.de-m.full | tee /etc/apt/sources.list.d/neurodebian.sources.list && \
70+
curl -sSL http://neuro.debian.net/lists/vivid.us-tn.full >> /etc/apt/sources.list.d/neurodebian.sources.list && \
71+
apt-key adv --recv-keys --keyserver hkp://pgp.mit.edu:80 0xA5D32F012649A5A9 && \
72+
apt-get update && \
73+
apt-get install -y fsl-core afni
74+
75+
RUN echo '#!/bin/bash' > /etc/profile.d/crn_neuro.sh && \
76+
echo 'export ANTSPATH=/opt/ants' >> /etc/profile.d/crn_neuro.sh && \
77+
echo 'export PATH=$ANTSPATH:$PATH' >> /etc/profile.d/crn_neuro.sh && \
78+
echo 'source /etc/fsl/fsl.sh' >> /etc/profile.d/crn_neuro.sh && \
79+
echo 'source /etc/afni/afni.sh' >> /etc/profile.d/crn_neuro.sh && \
80+
echo 'export ANTSPATH=/opt/ants' >> /etc/bash.bashrc && \
81+
echo 'export PATH=$ANTSPATH:$PATH' >> /etc/bash.bashrc && \
82+
echo 'source /etc/fsl/fsl.sh' >> /etc/bash.bashrc && \
83+
echo 'source /etc/afni/afni.sh' >> /etc/bash.bashrc
84+
85+
# Clear apt cache to reduce image size
86+
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
87+
88+
CMD ["/bin/bash"]
89+

docker/test-image-conda/Dockerfile

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Copyright (c) 2016, The developers of the Stanford CRN
2+
# All rights reserved.
3+
#
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions are met:
6+
#
7+
# * Redistributions of source code must retain the above copyright notice, this
8+
# list of conditions and the following disclaimer.
9+
#
10+
# * Redistributions in binary form must reproduce the above copyright notice,
11+
# this list of conditions and the following disclaimer in the documentation
12+
# and/or other materials provided with the distribution.
13+
#
14+
# * Neither the name of crn_base nor the names of its
15+
# contributors may be used to endorse or promote products derived from
16+
# this software without specific prior written permission.
17+
#
18+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
29+
FROM nipype/testbase
30+
MAINTAINER Stanford Center for Reproducible Neuroscience <[email protected]>
31+
32+
# Preparations
33+
RUN ln -snf /bin/bash /bin/sh
34+
WORKDIR /root
35+
36+
# Install miniconda
37+
RUN curl -sSLO https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh && \
38+
/bin/bash Miniconda-latest-Linux-x86_64.sh -b -p /usr/local/miniconda && \
39+
rm Miniconda-latest-Linux-x86_64.sh && \
40+
echo '#!/bin/bash' >> /etc/profile.d/anaconda.sh && \
41+
echo 'export PATH=/usr/local/miniconda/bin:$PATH' >> /etc/profile.d/anaconda.sh
42+
43+
ENV PATH /usr/local/miniconda/bin:$PATH
44+
45+
# http://bugs.python.org/issue19846
46+
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
47+
ENV LANG C.UTF-8
48+
49+
# Create conda environment
50+
RUN conda create -y -n nipypetests-2.7 lockfile && \
51+
echo '#!/bin/bash' >> /etc/profile.d/nipype.sh && \
52+
echo '#!/bin/bash' >> /etc/bashrc && \
53+
echo 'source activate nipypetests-2.7' >> /etc/profile.d/nipype.sh && \
54+
echo 'source activate nipypetests-2.7' >> /etc/bashrc
55+
56+
# Install pip
57+
RUN source activate nipypetests-2.7 && \
58+
pip install --upgrade pip && \
59+
pip install nose && \
60+
pip install numpy && \
61+
pip install scipy && \
62+
pip install pandas && \
63+
pip install matplotlib && \
64+
pip install xvfbwrapper && \
65+
python -c "from matplotlib import font_manager"
66+
67+
# Create conda environment
68+
RUN conda create -y -n nipypetests-3.4 lockfile python=3.4
69+
70+
# Install pip
71+
RUN source activate nipypetests-3.4 && \
72+
pip install --upgrade pip && \
73+
pip install nose && \
74+
pip install numpy && \
75+
pip install scipy && \
76+
pip install pandas && \
77+
pip install matplotlib && \
78+
pip install xvfbwrapper && \
79+
python -c "from matplotlib import font_manager"
80+
81+
# Create conda environment
82+
RUN conda create -y -n nipypetests-3.5 lockfile python=3.5
83+
84+
# Install pip
85+
RUN source activate nipypetests-3.5 && \
86+
pip install --upgrade pip && \
87+
pip install nose && \
88+
pip install numpy && \
89+
pip install scipy && \
90+
pip install pandas && \
91+
pip install matplotlib && \
92+
pip install xvfbwrapper && \
93+
python -c "from matplotlib import font_manager"
94+
95+
96+
97+
CMD ["/bin/bash"]

0 commit comments

Comments
 (0)