blob: 4d2b064c0872b83b27851407eea82590c87585bc [file] [log] [blame]
Andy Baviere4b346e2015-02-06 16:39:06 -05001FROM ubuntu:14.04.1
2MAINTAINER Andy Bavier <acb@cs.princeton.edu>
3
4# Install.
5RUN apt-get update
6RUN apt-get install -y git
7RUN apt-get install -y postgresql
8RUN apt-get install -y python-psycopg2
9RUN apt-get install -y graphviz graphviz-dev
10RUN apt-get install -y libxslt1.1 libxslt1-dev
11RUN apt-get install -y python-pip
12RUN apt-get install -y tar
13RUN apt-get install -y gcc
14RUN apt-get install -y python-httplib2
15RUN apt-get install -y geoip-database libgeoip1
16RUN apt-get install -y wget
17RUN apt-get install -y python-dev
S.Çağlar Onur3b744372015-02-09 12:36:42 -050018RUN apt-get install -y libyaml-dev
Andy Baviere4b346e2015-02-06 16:39:06 -050019
20RUN pip install django==1.7
21RUN pip install djangorestframework==2.4.4
22RUN pip install markdown # Markdown support for the browseable API.
23RUN pip install pyyaml # YAML content-type support.
24RUN pip install django-filter # Filtering support
25RUN pip install lxml # XML manipulation library
26RUN pip install netaddr # IP Addr library
27RUN pip install pytz
28RUN pip install django-timezones
29RUN pip install requests
30RUN pip install django-crispy-forms
31RUN pip install django-geoposition
32RUN pip install django-extensions
33RUN pip install django-suit
34RUN pip install django-evolution
35RUN pip install django-bitfield
36RUN pip install django-ipware
37RUN pip install django-encrypted-fields
38RUN pip install python-keyczar
39
40RUN apt-get install -y python-keystoneclient
41RUN apt-get install -y python-novaclient
42RUN apt-get install -y python-neutronclient
43RUN apt-get install -y python-glanceclient
44RUN apt-get install -y python-ceilometerclient
45
46RUN pip install django_rest_swagger
47
48RUN apt-get install -y python-setuptools
49RUN easy_install django_evolution
50RUN easy_install python_gflags
51RUN easy_install google_api_python_client
52
53# Set up latest Ansible
54# Need to add our patches too
55RUN apt-get install -y ansible
56# RUN git clone --recursive git://github.com/ansible/ansible.git /opt/ansible
57ADD ansible-hosts /etc/ansible/hosts
58
59ADD http://code.jquery.com/jquery-1.9.1.min.js /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
60
61# Get XOS
62ADD planetstack /opt/xos
63
64ADD observer-initscript /etc/init.d/plstackobserver
65
66RUN chmod +x /opt/xos/scripts/opencloud
67RUN /opt/xos/scripts/opencloud genkeys
68
69# Set postgres password to match default value in settings.py
70RUN service postgresql start; sudo -u postgres psql -c "alter user postgres with password 'password';"
71
72# Turn DEBUG on so that devel server will serve static files
73RUN sed -i 's/DEBUG = False/DEBUG = True/' /opt/xos/planetstack/settings.py
74
75# Cruft to workaround problems with migrations, should go away...
76RUN /opt/xos/scripts/opencloud dropdb
77RUN rm -rf /opt/xos/*/migrations
78RUN cd /opt/xos; python ./manage.py makemigrations core
79RUN cd /opt/xos; python ./manage.py makemigrations hpc
80RUN cd /opt/xos; python ./manage.py makemigrations requestrouter
81RUN cd /opt/xos; python ./manage.py makemigrations syndicate_storage
82RUN cd /opt/xos; python ./manage.py makemigrations servcomp
83
84RUN /opt/xos/scripts/opencloud initdb
85
86EXPOSE 8000
87
88# Set environment variables.
89ENV HOME /root
90
91# Define working directory.
92WORKDIR /root
93
94# Define default command.
95CMD ["/bin/bash"]