-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.rocky
91 lines (71 loc) · 2.89 KB
/
Dockerfile.rocky
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
from ubuntu:18.04
# install & configure timezone
ENV TZ 'Europe/Berlin'
RUN echo $TZ > /etc/timezone && \
apt-get update && apt-get install -y tzdata && \
rm /etc/localtime && \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata && \
apt-get clean
# add Ubuntu cloud archive for Openstack Rocky
RUN apt-get update && apt-get install -y software-properties-common
RUN add-apt-repository cloud-archive:rocky
# install openstack client
RUN apt-get update && apt-get install -y python-openstackclient
# install openstack client
RUN apt-get update && apt-get install -y python-openstackclient
# install & configure rabbitmq
RUN apt-get update && apt-get install -y rabbitmq-server
# install & configure memcache
RUN apt-get update && apt-get install -y memcached python-memcache
# install & configure mysql
RUN apt-get update && apt-get install -y mariadb-server
COPY config/db_init.sql /db_init.sql
# install & configure keystone
RUN apt-get update && apt-get install -y keystone apache2 libapache2-mod-wsgi
COPY config/keystone/keystone.conf /etc/keystone/keystone.conf
RUN chown keystone:root /etc/keystone/keystone.conf
COPY admin.rc /admin.rc
# install & configure glance
RUN apt-get update && apt-get install -y glance
COPY config/glance/glance-api.conf /etc/glance/glance-api.conf
COPY config/glance/glance-registry.conf /etc/glance/glance-registry.conf
RUN chown root:glance /etc/glance/glance-api.conf /etc/glance/glance-registry.conf
# install & configure nova
RUN apt-get update && apt-get install -y nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler nova-placement-api
COPY config/nova/nova.conf /etc/nova/nova.conf
RUN chown root:nova /etc/nova/nova.conf
# install & configure neutron
RUN apt-get update & apt-get install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
COPY config/neutron/neutron.conf /etc/neutron/neutron.conf
COPY config/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.ini
COPY config/neutron/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.ini
COPY config/neutron/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini
RUN chown root:neutron /etc/neutron/neutron.conf
RUN chown root:neutron /etc/neutron/dhcp_agent.ini
RUN chown root:neutron /etc/neutron/plugins/ml2/ml2_conf.ini
RUN chown root:neutron /etc/neutron/plugins/ml2/linuxbridge_agent.ini
# install & configure cinder
RUN apt-get update & apt-get install -y cinder-api cinder-scheduler
COPY config/cinder/cinder.conf /etc/cinder/cinder.conf
RUN chown root:cinder /etc/cinder/cinder.conf
# copy initialize script
COPY initialize /initialize
# dashboard/horizon
EXPOSE 80
# keystone
EXPOSE 5000
# glance
EXPOSE 9292
# nova
EXPOSE 8774
# cinder
EXPOSE 8776
# placement
EXPOSE 8778
# neutron
EXPOSE 9696
# initialize
RUN initialize/initialize.sh
COPY config/start.sh /start.sh
CMD ["/bin/bash","/start.sh"]