blob: d89e6e80348ae8ac1ad523e7ce49dc7f5ca335cf [file] [log] [blame]
Zack Williams90c80ed2016-05-27 09:18:31 -07001# Dockerfile.base
2# This image isn't used, but installs the prereqs for the other XOS images
3
4FROM ubuntu:14.04.3
5
6# XXX Workaround for docker bug:
7# https://github.com/docker/docker/issues/6345
8# Kernel 3.15 breaks docker, uss the line below as a workaround
9# until there is a fix
10RUN ln -s -f /bin/true /usr/bin/chfn
11# XXX End workaround
12
13# Install apt packages
14RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
15 curl \
16 gcc \
17 geoip-database \
18 git \
19 graphviz \
20 graphviz-dev \
21 libgeoip1 \
22 libxslt1-dev \
23 libxslt1.1 \
24 libyaml-dev \
25 m4 \
26 openssh-client \
27 pkg-config \
28 python-ceilometerclient \
29 python-crypto \
30 python-dev \
31 python-glanceclient \
32 python-httplib2 \
33 python-jinja2 \
34 python-keystoneclient \
35 python-neutronclient \
36 python-novaclient \
37 python-paramiko \
38 python-pip \
39 python-psycopg2 \
40 python-pycurl \
41 python-setuptools \
42 python-yaml \
43 rsync \
44 supervisor \
45 tar \
46 wget
47
48# Install python pacakges with pip
49RUN pip install \
50 django==1.7 \
51 django-bitfield \
52 django-crispy-forms \
53 django-encrypted-fields \
54 django-extensions \
55 django-filter==0.11.0 \
56 django-geoposition \
57 django-ipware \
58 django_rest_swagger \
59 django-suit==0.3a1 \
60 django-timezones \
61 djangorestframework==3.3.3 \
62 dnslib \
63 jinja2 \
64 lxml \
65 markdown \
66 netaddr \
67 pyOpenSSL \
68 psycopg2 \
69 python-ceilometerclient \
70 python-dateutil \
71 python-keyczar \
72 python-logstash \
73 pygraphviz \
74 pytz \
75 pyyaml \
76 requests
77
78# Upgrade jinja2
79RUN pip install -U \
80 jinja2
81
82# Installs with Easy install (should be incorporated into pip?)
83RUN easy_install --upgrade httplib2
84
85RUN easy_install \
86 python_gflags \
87 google_api_python_client \
88 httplib2.ca_certs_locater
89
90# jQuery download w/checksum
91ENV JQUERY_VERSION jquery-1.9.1.min.js
92ENV JQUERY_DL_URL http://code.jquery.com/jquery-1.9.1.min.js
93ENV JQUERY_SHA256 c12f6098e641aaca96c60215800f18f5671039aecf812217fab3c0d152f6adb4
94
95RUN wget $JQUERY_DL_URL && \
96 echo "$JQUERY_SHA256 $JQUERY_VERSION" | sha256sum -c - && \
97 mv $JQUERY_VERSION /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
98
99# Install custom Ansible
100RUN \
101 git clone -b release1.8.2 git://github.com/ansible/ansible.git /opt/ansible && \
102 git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/lib/ansible/modules/extras && \
103 git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/v2/ansible/modules/extras && \
104 git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/lib/ansible/modules/core && \
105 git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/v2/ansible/modules/core && \
106 # git clone uses cached copy, doesn't pick up latest
107 git -C /opt/ansible pull && \
108 git -C /opt/ansible/lib/ansible/modules/core pull && \
109 git -C /opt/ansible/v2/ansible/modules/core pull
110
111RUN mkdir -p /usr/local/share /bin /etc/ansible
112
Zack Williamsd4b402f2016-05-27 15:25:02 -0700113COPY ansible-hosts /etc/ansible/hosts
Zack Williams90c80ed2016-05-27 09:18:31 -0700114
115# For Synchronizer
116ENV PHANTOMJS_DL_URL http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2
117ENV PHANTOMJS_SHA256 a7658f5f2d9464f86891afdb979eb60b754d5f404801db624368ac11e16724d4
118
119RUN curl -fLsS $PHANTOMJS_DL_URL -o phantomjs.tar.bz2 && \
120 echo "$PHANTOMJS_SHA256 phantomjs.tar.bz2" | sha256sum -c - && \
121 tar -C /usr/local/share -xjf phantomjs.tar.bz2 && \
Zack Williams2d2eb422016-05-27 15:41:29 -0700122 ln -s /usr/local/share/phantomjs-* /usr/local/share/phantomjs && \
123 ln -s /usr/local/share/phantomjs/bin/phantomjs /bin/phantomjs && \
Zack Williams90c80ed2016-05-27 09:18:31 -0700124 rm phantomjs.tar.bz2
125
126RUN git clone git://git.planet-lab.org/fofum.git /tmp/fofum && \
127 cd /tmp/fofum; python setup.py install && \
Zack Williams2d2eb422016-05-27 15:41:29 -0700128 rm -rf /tmp/fofum
Zack Williams90c80ed2016-05-27 09:18:31 -0700129