blob: d89e6e80348ae8ac1ad523e7ce49dc7f5ca335cf [file] [log] [blame]
# Dockerfile.base
# This image isn't used, but installs the prereqs for the other XOS images
FROM ubuntu:14.04.3
# XXX Workaround for docker bug:
# https://github.com/docker/docker/issues/6345
# Kernel 3.15 breaks docker, uss the line below as a workaround
# until there is a fix
RUN ln -s -f /bin/true /usr/bin/chfn
# XXX End workaround
# Install apt packages
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
curl \
gcc \
geoip-database \
git \
graphviz \
graphviz-dev \
libgeoip1 \
libxslt1-dev \
libxslt1.1 \
libyaml-dev \
m4 \
openssh-client \
pkg-config \
python-ceilometerclient \
python-crypto \
python-dev \
python-glanceclient \
python-httplib2 \
python-jinja2 \
python-keystoneclient \
python-neutronclient \
python-novaclient \
python-paramiko \
python-pip \
python-psycopg2 \
python-pycurl \
python-setuptools \
python-yaml \
rsync \
supervisor \
tar \
wget
# Install python pacakges with pip
RUN pip install \
django==1.7 \
django-bitfield \
django-crispy-forms \
django-encrypted-fields \
django-extensions \
django-filter==0.11.0 \
django-geoposition \
django-ipware \
django_rest_swagger \
django-suit==0.3a1 \
django-timezones \
djangorestframework==3.3.3 \
dnslib \
jinja2 \
lxml \
markdown \
netaddr \
pyOpenSSL \
psycopg2 \
python-ceilometerclient \
python-dateutil \
python-keyczar \
python-logstash \
pygraphviz \
pytz \
pyyaml \
requests
# Upgrade jinja2
RUN pip install -U \
jinja2
# Installs with Easy install (should be incorporated into pip?)
RUN easy_install --upgrade httplib2
RUN easy_install \
python_gflags \
google_api_python_client \
httplib2.ca_certs_locater
# jQuery download w/checksum
ENV JQUERY_VERSION jquery-1.9.1.min.js
ENV JQUERY_DL_URL http://code.jquery.com/jquery-1.9.1.min.js
ENV JQUERY_SHA256 c12f6098e641aaca96c60215800f18f5671039aecf812217fab3c0d152f6adb4
RUN wget $JQUERY_DL_URL && \
echo "$JQUERY_SHA256 $JQUERY_VERSION" | sha256sum -c - && \
mv $JQUERY_VERSION /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
# Install custom Ansible
RUN \
git clone -b release1.8.2 git://github.com/ansible/ansible.git /opt/ansible && \
git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/lib/ansible/modules/extras && \
git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/v2/ansible/modules/extras && \
git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/lib/ansible/modules/core && \
git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/v2/ansible/modules/core && \
# git clone uses cached copy, doesn't pick up latest
git -C /opt/ansible pull && \
git -C /opt/ansible/lib/ansible/modules/core pull && \
git -C /opt/ansible/v2/ansible/modules/core pull
RUN mkdir -p /usr/local/share /bin /etc/ansible
COPY ansible-hosts /etc/ansible/hosts
# For Synchronizer
ENV PHANTOMJS_DL_URL http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2
ENV PHANTOMJS_SHA256 a7658f5f2d9464f86891afdb979eb60b754d5f404801db624368ac11e16724d4
RUN curl -fLsS $PHANTOMJS_DL_URL -o phantomjs.tar.bz2 && \
echo "$PHANTOMJS_SHA256 phantomjs.tar.bz2" | sha256sum -c - && \
tar -C /usr/local/share -xjf phantomjs.tar.bz2 && \
ln -s /usr/local/share/phantomjs-* /usr/local/share/phantomjs && \
ln -s /usr/local/share/phantomjs/bin/phantomjs /bin/phantomjs && \
rm phantomjs.tar.bz2
RUN git clone git://git.planet-lab.org/fofum.git /tmp/fofum && \
cd /tmp/fofum; python setup.py install && \
rm -rf /tmp/fofum