forked from open-cloud/xos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
134 lines (111 loc) · 5.71 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
FROM ubuntu:14.04.2
MAINTAINER Andy Bavier <[email protected]>
# 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.
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y git
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-psycopg2
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y graphviz graphviz-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libxslt1.1 libxslt1-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-pip
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tar
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y gcc
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-httplib2
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y geoip-database libgeoip1
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libyaml-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y pkg-config
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-pycurl
RUN pip install django==1.7
RUN pip install djangorestframework==2.4.4
RUN pip install markdown # Markdown support for the browseable API.
RUN pip install pyyaml # YAML content-type support.
RUN pip install django-filter # Filtering support
RUN pip install lxml # XML manipulation library
RUN pip install netaddr # IP Addr library
RUN pip install pytz
RUN pip install django-timezones
RUN pip install requests
RUN pip install django-crispy-forms
RUN pip install django-geoposition
RUN pip install django-extensions
RUN pip install django-suit
RUN pip install django-bitfield
RUN pip install django-ipware
RUN pip install django-encrypted-fields
RUN pip install python-keyczar
RUN pip install pygraphviz
RUN pip install dnslib
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-keystoneclient
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-novaclient
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-neutronclient
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-glanceclient
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-ceilometerclient
RUN pip install django_rest_swagger
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-setuptools
RUN easy_install django_evolution
RUN easy_install python_gflags
RUN easy_install --upgrade httplib2
RUN easy_install google_api_python_client
# Install custom Ansible
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-crypto
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-yaml
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-client
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-paramiko
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-jinja2
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-httplib2
RUN git clone -b release1.8.2 git://github.com/ansible/ansible.git /opt/ansible
RUN git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/lib/ansible/modules/extras
RUN git clone -b release1.8.2 git://github.com/ansible/ansible-modules-extras.git /opt/ansible/v2/ansible/modules/extras
RUN git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/lib/ansible/modules/core
RUN git clone git://github.com/sb98052/ansible-modules-core.git /opt/ansible/v2/ansible/modules/core
ADD ansible-hosts /etc/ansible/hosts
ADD http://code.jquery.com/jquery-1.9.1.min.js /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
# For Observer
RUN git clone git://git.planet-lab.org/fofum.git /tmp/fofum
RUN cd /tmp/fofum; python setup.py install
RUN rm -rf /tmp/fofum
RUN mkdir -p /usr/local/share /bin
ADD http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2 /usr/local/share/
RUN tar jxvf /usr/local/share/phantomjs-1.7.0-linux-x86_64.tar.bz2 -C /usr/local/share/
RUN rm -f /usr/local/share/phantomjs-1.7.0-linux-x86_64.tar.bz2
RUN ln -s /usr/local/share/phantomjs-1.7.0-linux-x86_64 /usr/local/share/phantomjs
RUN ln -s /usr/local/share/phantomjs/bin/phantomjs /bin/phantomjs
# Supervisor
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y supervisor
ADD observer.conf /etc/supervisor/conf.d/
# Get XOS
ADD xos /opt/xos
# Initscript is broken in Ubuntu
#ADD observer-initscript /etc/init.d/xosobserver
RUN chmod +x /opt/xos/scripts/opencloud
RUN /opt/xos/scripts/opencloud genkeys
# Workaround for AUFS issue
# https://github.com/docker/docker/issues/783#issuecomment-56013588
RUN mkdir /etc/ssl/private-copy; mv /etc/ssl/private/* /etc/ssl/private-copy/; rm -r /etc/ssl/private; mv /etc/ssl/private-copy /etc/ssl/private; chmod -R 0700 /etc/ssl/private; chown -R postgres /etc/ssl/private
# Set postgres password to match default value in settings.py
RUN service postgresql start; sudo -u postgres psql -c "alter user postgres with password 'password';"
# Turn DEBUG on so that devel server will serve static files
# (not necessary if --insecure is passed to 'manage.py runserver')
# RUN sed -i 's/DEBUG = False/DEBUG = True/' /opt/xos/xos/settings.py
# Cruft to workaround problems with migrations, should go away...
RUN /opt/xos/scripts/opencloud remigrate
# git clone uses cached copy, doesn't pick up latest
RUN git -C /opt/ansible pull
RUN git -C /opt/ansible/lib/ansible/modules/core pull
RUN git -C /opt/ansible/v2/ansible/modules/core pull
EXPOSE 8000
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
#CMD ["/bin/bash"]
CMD /opt/xos/scripts/docker_start_xos