-
Notifications
You must be signed in to change notification settings - Fork 4
/
Dockerfile
150 lines (122 loc) · 4.26 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# machine learning gears
FROM kaggle/python
MAINTAINER Marsan Ma <marsan@gmail.com>
#---------------------------------
# basic tools
#---------------------------------
RUN apt-get update
RUN apt-get install -y wget htop vim unzip procps
RUN conda install mkl
RUN conda install libgfortran
#---------------------------------
# Python libs
#---------------------------------
RUN pip install -U \
pandas \
mongoengine \
bottle \
cherrypy \
jieba3k \
yolk3k \
azure \
cython \
html5lib \
pyyaml \
demjson \
hanziconv \
ftfy \
hiredis \
google-api-python-client
RUN pip install -U \
Django \
django-pipeline \
django-bootstrap3 \
django_compressor \
rest-pandas \
gunicorn \
boto3 \
PyMySQL
RUN pip install \
djangoajax \
django-dashing
# MySQL
RUN apt-get install -y python3-dev libmysqlclient-dev
RUN pip install mysqlclient
# pathos (python parallel process)
#RUN pip install -U git+https://github.com/uqfoundation/pathos.git@master
#RUN pip install -U \
# newspaper3k
##---------------------------------
## Install Java8
##---------------------------------
## Install Java.
#RUN apt-get update && \
# DEBIAN_FRONTEND=noninteractive \
# apt-get install -y -q --no-install-recommends \
# software-properties-common && \
# echo "==> Install Java 8..." && \
# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list && \
# echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list && \
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 && \
# apt-get update && \
# echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
# echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections && \
# DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes oracle-java8-installer oracle-java8-set-default && \
# echo "==> Clean up..." && \
# apt-get remove -y --auto-remove software-properties-common && \
# apt-get clean && \
# rm -rf /var/lib/apt/lists/* && \
# rm -rf /var/cache/oracle-jdk8-installer
#
## Define commonly used JAVA_HOME variable
#ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
#---------------------------------
# GNU scientific lib
#---------------------------------
#RUN apt-get install -y libgsl0ldbl
#RUN curl -s ftp://ftp.gnu.org/gnu/gsl/gsl-latest.tar.gz | tar -xz -C /usr/local/
#RUN cd /usr/local/ &&
#---------------------------------
# Hadoop
#---------------------------------
#RUN curl -s http://www.eu.apache.org/dist/hadoop/common/hadoop-2.7.0/hadoop-2.7.0.tar.gz | tar -xz -C /usr/local/
#RUN cd /usr/local && ln -s ./hadoop-2.7.0 hadoop
# Tensorflow
RUN pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp35-cp35m-linux_x86_64.whl
#---------------------------------
# Supervisord
#---------------------------------
# Install Supervisor.
RUN \
apt-get update && \
apt-get install -y supervisor && \
rm -rf /var/lib/apt/lists/* && \
sed -i 's/^\(\[supervisord\]\)$/\1\nnodaemon=true/' /etc/supervisor/supervisord.conf
# Define mountable directories.
VOLUME ["/etc/supervisor/conf.d"]
# ------------------------------------------------------------------------------
# Security changes
# - Determine runlevel and services at startup [BOOT-5180]
RUN update-rc.d supervisor defaults
# - Check the output of apt-cache policy manually to determine why output is empty [KRNL-5788]
RUN apt-get update | apt-get upgrade -y
# - Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [AUTH-9262]
RUN apt-get install libpam-cracklib -y
RUN ln -s /lib/x86_64-linux-gnu/security/pam_cracklib.so /lib/security
#---------------------------------
# Enviroment
#---------------------------------
# Timezone
RUN echo "Asia/Taipei" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata
# Add runner script
COPY files/bashrc .bashrc
COPY files/vimrc .vimrc
# setup supervisor apps & start supervisor
COPY files/supervisor/* /etc/supervisor/conf.d/
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
## Set the working directory
WORKDIR /home/workspace
EXPOSE 8880:8900
EXPOSE 80
EXPOSE 443