blob: e430dc872ed7ae9078b9c68497acea4937ce83a3 [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 \
apt-transport-https \
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 \
&& rm -rf /var/lib/apt/lists/*
# 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 heat-translator for TOSCA support
ENV HT_REPO_URL https://github.com/openstack/heat-translator.git
ENV HT_REF a951b93c16e54046ed2d233d814860181c772e30
RUN git clone $HT_REPO_URL /tmp/heat-translator && \
cd /tmp/heat-translator && \
git checkout $HT_REF && \
mkdir -p /opt/tosca && \
mv /tmp/heat-translator/translator /opt/tosca/translator && \
echo > /opt/tosca/translator/__init__.py && \
rm -rf /tmp/heat-translator
# 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 && \
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