blob: e653b5a4d2ce98ccffd1b5bcce380ce75836be62 [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 \
Zack Williamsbe6c9272016-05-27 23:31:22 -070015 apt-transport-https \
Zack Williams90c80ed2016-05-27 09:18:31 -070016 curl \
17 gcc \
18 geoip-database \
19 git \
20 graphviz \
21 graphviz-dev \
22 libgeoip1 \
23 libxslt1-dev \
24 libxslt1.1 \
25 libyaml-dev \
26 m4 \
27 openssh-client \
28 pkg-config \
29 python-ceilometerclient \
30 python-crypto \
31 python-dev \
32 python-glanceclient \
33 python-httplib2 \
34 python-jinja2 \
35 python-keystoneclient \
36 python-neutronclient \
37 python-novaclient \
38 python-paramiko \
39 python-pip \
40 python-psycopg2 \
41 python-pycurl \
42 python-setuptools \
43 python-yaml \
44 rsync \
45 supervisor \
46 tar \
Zack Williams0e2da4b2016-05-28 15:08:01 -070047 wget \
48 && rm -rf /var/lib/apt/lists/*
Zack Williams90c80ed2016-05-27 09:18:31 -070049
50# Install python pacakges with pip
51RUN pip install \
52 django==1.7 \
53 django-bitfield \
54 django-crispy-forms \
55 django-encrypted-fields \
56 django-extensions \
57 django-filter==0.11.0 \
58 django-geoposition \
59 django-ipware \
60 django_rest_swagger \
61 django-suit==0.3a1 \
62 django-timezones \
63 djangorestframework==3.3.3 \
64 dnslib \
65 jinja2 \
66 lxml \
67 markdown \
68 netaddr \
69 pyOpenSSL \
70 psycopg2 \
71 python-ceilometerclient \
72 python-dateutil \
73 python-keyczar \
74 python-logstash \
75 pygraphviz \
76 pytz \
77 pyyaml \
78 requests
79
80# Upgrade jinja2
81RUN pip install -U \
82 jinja2
83
84# Installs with Easy install (should be incorporated into pip?)
85RUN easy_install --upgrade httplib2
86
87RUN easy_install \
88 python_gflags \
89 google_api_python_client \
90 httplib2.ca_certs_locater
91
92# jQuery download w/checksum
93ENV JQUERY_VERSION jquery-1.9.1.min.js
94ENV JQUERY_DL_URL http://code.jquery.com/jquery-1.9.1.min.js
95ENV JQUERY_SHA256 c12f6098e641aaca96c60215800f18f5671039aecf812217fab3c0d152f6adb4
96
97RUN wget $JQUERY_DL_URL && \
Zack Williamsa60b12f2016-05-28 22:41:17 -070098 echo "$JQUERY_SHA256 $JQUERY_VERSION" | sha256sum -c - && \
Zack Williams90c80ed2016-05-27 09:18:31 -070099 mv $JQUERY_VERSION /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
100
Zack Williamsa60b12f2016-05-28 22:41:17 -0700101# Install heat-translator for TOSCA support
102ENV HT_REPO_URL https://github.com/openstack/heat-translator.git
Zack Williamsba418212016-05-31 14:27:06 -0700103ENV HT_REF a951b93c16e54046ed2d233d814860181c772e30
Zack Williamsa60b12f2016-05-28 22:41:17 -0700104
105RUN git clone $HT_REPO_URL /tmp/heat-translator && \
106 cd /tmp/heat-translator && \
Zack Williamsba418212016-05-31 14:27:06 -0700107 git checkout $HT_REF && \
Zack Williamsa60b12f2016-05-28 22:41:17 -0700108 mkdir -p /opt/tosca && \
109 mv /tmp/heat-translator/translator /opt/tosca/translator && \
Zack Williamsf6348062016-05-31 11:26:45 -0700110 echo > /opt/tosca/translator/__init__.py && \
Zack Williamse8a8d9e2016-05-28 22:49:33 -0700111 rm -rf /tmp/heat-translator
Zack Williamsa60b12f2016-05-28 22:41:17 -0700112
Zack Williams90c80ed2016-05-27 09:18:31 -0700113# Install custom Ansible
114RUN \
115 git clone -b release1.8.2 git://github.com/ansible/ansible.git /opt/ansible && \
116 git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/lib/ansible/modules/extras && \
117 git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/v2/ansible/modules/extras && \
118 git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/lib/ansible/modules/core && \
119 git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/v2/ansible/modules/core && \
120 # git clone uses cached copy, doesn't pick up latest
121 git -C /opt/ansible pull && \
122 git -C /opt/ansible/lib/ansible/modules/core pull && \
Zack Williams0e2da4b2016-05-28 15:08:01 -0700123 git -C /opt/ansible/v2/ansible/modules/core pull && \
124 mkdir -p /usr/local/share /bin /etc/ansible
Zack Williams90c80ed2016-05-27 09:18:31 -0700125
Zack Williamsd4b402f2016-05-27 15:25:02 -0700126COPY ansible-hosts /etc/ansible/hosts
Zack Williams90c80ed2016-05-27 09:18:31 -0700127
128# For Synchronizer
Matteo Scandolo445cef22016-06-13 18:12:48 -0700129# ENV PHANTOMJS_DL_URL http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2
130# ENV PHANTOMJS_SHA256 a7658f5f2d9464f86891afdb979eb60b754d5f404801db624368ac11e16724d4
Zack Williams90c80ed2016-05-27 09:18:31 -0700131
Matteo Scandolo445cef22016-06-13 18:12:48 -0700132# RUN curl -fLsS $PHANTOMJS_DL_URL -o phantomjs.tar.bz2 && \
133# echo "$PHANTOMJS_SHA256 phantomjs.tar.bz2" | sha256sum -c - && \
134# tar -C /usr/local/share -xjf phantomjs.tar.bz2 && \
135# ln -s /usr/local/share/phantomjs-* /usr/local/share/phantomjs && \
136# ln -s /usr/local/share/phantomjs/bin/phantomjs /bin/phantomjs && \
137# rm phantomjs.tar.bz2
Zack Williams90c80ed2016-05-27 09:18:31 -0700138
Matteo Scandolo445cef22016-06-13 18:12:48 -0700139#RUN git clone git://git.planet-lab.org/fofum.git /tmp/fofum && \
140# cd /tmp/fofum; python setup.py install && \
141# rm -rf /tmp/fofum
Zack Williams90c80ed2016-05-27 09:18:31 -0700142