b99a0909c92b5606ef598a1fe70864c5a202d128
[osm/RO.git] / Dockerfile-local
1 ##
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at
5 #
6 #    http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
11 # implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 ##
15
16 FROM ubuntu:18.04
17
18 LABEL authors="Alfonso Tierno"
19
20 RUN apt-get update && apt-get install -y git python3 python3-pip \
21     && python3 -m pip install --upgrade pip \
22     && DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev libmysqlclient-dev mysql-client \
23     && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U networking-l2gw  \
24     && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U progressbar pyvmomi pyvcloud==19.1.1  \
25     && DEBIAN_FRONTEND=noninteractive apt-get -y install genisoimage
26
27 # This is not needed, because package dependency will install anyway.
28 # But done here in order to harry up image generation using cache
29 RUN DEBIAN_FRONTEND=noninteractive  apt-get -y install python3-neutronclient python3-openstackclient \
30     python3-requests python3-netaddr python3-argcomplete curl  \
31     && DEBIAN_FRONTEND=noninteractive curl -Lo /tmp/libzenohc.so https://github.com/eclipse-fog05/fog05/releases/download/v0.1.0/libzenohc.so \
32     && mv /tmp/libzenohc.so /usr/local/lib/libzenohc.so \
33     && DEBIAN_FRONTEND=noninteractive python3 -m pip install -U jsonrpclib-pelix cvprac \
34     "osm-im @ git+https://osm.etsi.org/gerrit/osm/IM.git#egg=osm-im" "azure==4.0.0" boto \
35     pyone "oca @ git+https://github.com/python-oca/python-oca#egg=oca" \
36     pyangbind sphinx zenoh==0.3.0 yaks==0.3.0.post1 fog05-sdk==0.2.0 fog05==0.2.0
37
38
39 #    DEBIAN_FRONTEND=noninteractive apt-get -y install python-openstacksdk python-openstackclient && \
40 # TODO py3   DEBIAN_FRONTEND=noninteractive add-apt-repository -y cloud-archive:rocky && apt-get update && apt-get install -y python3-networking-l2gw \
41
42 #    DEBIAN_FRONTEND=noninteractive apt-get -y install python-cffi  libssl-dev libffi-dev python-mysqldb && \
43 #    && DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common && \
44 #    DEBIAN_FRONTEND=noninteractive apt-get -y install wget tox && \
45
46 COPY . /root/RO
47
48 RUN /root/RO/RO/osm_ro/scripts/install-osm-im.sh --develop && \
49     mkdir -p /var/log/osm && \
50     python3 -m pip install -e /root/RO/RO-plugin && \
51     python3 -m pip install -e /root/RO/RO && \
52     python3 -m pip install -e /root/RO/RO-client && \
53     python3 -m pip install -e /root/RO/NG-RO && \
54     python3 -m pip install -e /root/RO/RO-VIM-vmware && \
55     python3 -m pip install -e /root/RO/RO-VIM-openstack && \
56     python3 -m pip install -e /root/RO/RO-VIM-openvim && \
57     python3 -m pip install -e /root/RO/RO-VIM-aws && \
58     python3 -m pip install -e /root/RO/RO-VIM-azure && \
59     python3 -m pip install -e /root/RO/RO-VIM-fos && \
60     python3 -m pip install -e /root/RO/RO-SDN-dynpac && \
61     python3 -m pip install -e /root/RO/RO-SDN-ietfl2vpn && \
62     python3 -m pip install -e /root/RO/RO-SDN-onos_vpls && \
63     python3 -m pip install -e /root/RO/RO-SDN-onos_openflow && \
64     python3 -m pip install -e /root/RO/RO-SDN-odl_openflow && \
65     python3 -m pip install -e /root/RO/RO-SDN-floodlight_openflow && \
66     python3 -m pip install -e /root/RO/RO-SDN-arista_cloudvision && \
67     python3 -m pip install -e /root/RO/RO-SDN-juniper_contrail && \
68     rm -rf /root/.cache && \
69     apt-get clean && \
70     rm -rf /var/lib/apt/lists/*
71
72 EXPOSE 9090
73
74 ENV OSMRO_NG              True
75
76 # database
77 ENV OSMRO_DATABASE_DRIVER mongo
78 ENV OSMRO_DATABASE_URI    mongodb://mongo:27017
79 # ENV OSMRO_DATABASE_COMMONKEY  xxx
80 # ENV OSMRO_DATABASE_USER  xxx
81 # ENV OSMRO_DATABASE_PASSWORD  xxx
82
83 # message
84 ENV OSMRO_MESSAGE_DRIVER  kafka
85 ENV OSMRO_MESSAGE_HOST    kafka
86 ENV OSMRO_MESSAGE_PORT    9092
87
88 # logs
89 ENV OSMRO_LOG_LEVEL       DEBUG
90
91 CMD python3 -m osm_ng_ro.ro_main
92
93 # HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=12 \
94 #  CMD curl --silent --fail http://localhost:9090/ro || exit 1
95