Switch to unified view

a b/deeplearn-approach/docker/Dockerfile.cpu
1
FROM ubuntu:14.04
2
MAINTAINER Fernando Andreotti <fernando.andreotti@eng.ox.ac.uk>
3
4
# Versions used for some packages
5
ARG CONDA_VERSION=4.3.1
6
ARG CONDA_ENV
7
ARG TENSORFLOW_VERSION=1.0*
8
ARG KERAS_VERSION=2.0.2
9
ARG PYTHON_VERSION=3.5
10
11
ENTRYPOINT ["/bin/bash", "-c" ]
12
13
USER root
14
15
# Install some dependencies
16
ENV DEBIAN_FRONTEND noninteractive
17
ENV CONDA_ENV_PATH /opt/miniconda
18
ENV MYCONDA_ENV "deeplearn"
19
ENV CONDA_ACTIVATE "source $CONDA_ENV_PATH/bin/activate $MYCONDA_ENV"
20
21
RUN apt-get update --fix-missing -qq \
22
     && apt-get install --no-install-recommends -y \
23
        autoconf \
24
        automake \  
25
        bc \
26
        build-essential \
27
        bzip2 \
28
        cmake \
29
        curl \
30
        g++ \
31
        gfortran \
32
        git \
33
        language-pack-en \
34
        libatlas-dev \
35
        libatlas3gf-base \
36
        libcurl4-openssl-dev \ 
37
        libffi-dev \
38
        libfreetype6-dev \
39
        libglib2.0-0 \   
40
        libhdf5-dev \
41
        liblcms2-dev \
42
        libopenblas-dev \       
43
        libssl-dev \
44
        libtiff5-dev \
45
        libtool \
46
        libwebp-dev \
47
        libzmq3-dev \
48
        make \
49
        nano \
50
        pkg-config \
51
        software-properties-common \
52
        unzip \
53
        wget \
54
        zlib1g-dev \
55
        qt5-default \
56
        libvtk6-dev \
57
        zlib1g-dev
58
59
# Install miniconda to /opt/miniconda
60
RUN curl -LO http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh
61
RUN /bin/bash Miniconda-latest-Linux-x86_64.sh -p $CONDA_ENV_PATH -b
62
RUN rm Miniconda-latest-Linux-x86_64.sh
63
ENV PATH=$CONDA_ENV_PATH/bin:${PATH}
64
RUN conda update --quiet --yes conda
65
66
ENV PATH ${CONDA_ENV_PATH}/bin:$PATH
67
68
# Creating Anaconda environment
69
RUN conda create -y --name $MYCONDA_ENV python=${PYTHON_VERSION}
70
71
# Install Python 3 packages
72
73
RUN conda install -c conda-forge -y -n $MYCONDA_ENV\
74
     'beautifulsoup4=4.5*' \
75
    'hdf5=1.8.17' \
76
    'h5py=2.7*' \
77
    'ipython=5.1*' \    
78
    'ipykernel=4.5*' \
79
    'ipywidgets=5.2*' \
80
    'jupyter=1.0*' \
81
    'lxml=3.8*' \
82
    'matplotlib=2.0*' \
83
    'notebook=4.3*' \
84
    'numpy=1.12*' \
85
    'pandas=0.20*' \
86
    'pillow=4.2*' \
87
    'pip=9.0*' \
88
    'python=3.5*' \
89
    'rpy2=2.8*'  \
90
    'scipy=0.19*' \
91
    'scikit-learn=0.19*' \
92
    'scikit-image=0.13*' \
93
    'setuptools=36.3*' \
94
    'six=1.10*' \
95
    'sphinx=1.5*' \
96
    'spyder=3.1*'  && \
97
    conda clean -tipsy
98
99
# Some R dependencies
100
RUN conda install -c conda-forge -n $MYCONDA_ENV r-r.utils r-lme4 r-nlme
101
102
# Install TensorFlow
103
RUN conda install -c conda-forge -n $MYCONDA_ENV tensorflow=${TENSORFLOW_VERSION}
104
105
106
# Install Keras
107
ENV KERAS_BACKEND=tensorflow
108
RUN conda install -c conda-forge -n $MYCONDA_ENV keras=${KERAS_VERSION}
109
110
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
111
112
RUN conda info --envs
113
RUN sed -i 's/theano/tensorflow/g' ${CONDA_ENV_PATH}/envs/${MYCONDA_ENV}/etc/conda/activate.d/keras_activate.sh # make tensorflow default 
114
115
# Visualization tools
116
RUN conda install -c conda-forge -y -n $MYCONDA_ENV \
117
    graphviz=2.38.0 \
118
    pydotplus=2.0.2
119
120
121
122
RUN $CONDA_ACTIVATE && pip install --upgrade pip && \
123
    pip install git+git://github.com/stared/keras-sequential-ascii.git \
124
    pydot3
125
126
####################
127
## Running tests ###
128
####################
129
130
ENV HOME /sharedfolder
131
WORKDIR /sharedfolder
132
133
# Add a notebook profile.
134
RUN mkdir -p -m 700 /sharedfolder/.jupyter/ && \
135
    echo "c.NotebookApp.ip = '*'" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
136
    echo "c.NotebookApp.port = 8888" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
137
    echo "c.NotebookApp.open_browser = False" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
138
    echo "c.MultiKernelManager.default_kernel_name = 'python3'" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
139
    echo "c.NotebookApp.allow_root = True" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
140
    echo "c.NotebookApp.password_required = False" >> /sharedfolder/.jupyter/jupyter_notebook_config.py \
141
    echo "c.NotebookApp.token = ''" >> /sharedfolder/.jupyter/jupyter_notebook_config.py
142
143
144
# Expose Ports for TensorBoard (6006), Ipython (8888)
145
EXPOSE 6006 8888
146
147
CMD ["source activate deeplearn && /bin/bash"]