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
6 # http://www.apache.org/licenses/LICENSE-2.0
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
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
18 LABEL authors="Alfonso Tierno"
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
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
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 \
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 && \
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/RO-VIM-vmware && \
54 python3 -m pip install -e /root/RO/RO-VIM-openstack && \
55 python3 -m pip install -e /root/RO/RO-VIM-openvim && \
56 python3 -m pip install -e /root/RO/RO-VIM-aws && \
57 python3 -m pip install -e /root/RO/RO-VIM-azure && \
58 python3 -m pip install -e /root/RO/RO-VIM-fos && \
59 python3 -m pip install -e /root/RO/RO-SDN-dynpac && \
60 python3 -m pip install -e /root/RO/RO-SDN-ietfl2vpn && \
61 python3 -m pip install -e /root/RO/RO-SDN-onos_vpls && \
62 python3 -m pip install -e /root/RO/RO-SDN-onos_openflow && \
63 python3 -m pip install -e /root/RO/RO-SDN-odl_openflow && \
64 python3 -m pip install -e /root/RO/RO-SDN-floodlight_openflow && \
65 python3 -m pip install -e /root/RO/RO-SDN-arista_cloudvision && \
66 python3 -m pip install -e /root/RO/RO-SDN-juniper_contrail && \
67 rm -rf /root/.cache && \
69 rm -rf /var/lib/apt/lists/*
75 # Two mysql databases are needed (DB and DB_OVIM). Can be hosted on same or separated containers
76 # These ENV must be provided
77 # RO_DB_HOST: host of the main
78 # RO_DB_OVIM_HOST: ... if empty RO_DB_HOST is assumed
79 # RO_DB_ROOT_PASSWORD: this has to be provided first time for creating database. It will create and init only if empty!
80 # RO_DB_OVIM_ROOT_PASSWORD: ... if empty RO_DB_ROOT_PASSWORD is assumed
81 # RO_DB_USER: default value 'mano'
82 # RO_DB_OVIM_USER: default value 'mano'
83 # RO_DB_PASSWORD: default value 'manopw'
84 # RO_DB_OVIM_PASSWORD: default value 'manopw'
85 # RO_DB_PORT: default value '3306'
86 # RO_DB_OVIM_PORT: default value '3306'
87 # RO_DB_NAME: default value 'mano_db'
88 # RO_DB_OVIM_NAME: default value 'mano_vim_db'
89 # RO_LOG_FILE: default log to stderr if not defined
93 RO_DB_ROOT_PASSWORD="" \
94 RO_DB_OVIM_ROOT_PASSWORD="" \
96 RO_DB_OVIM_USER=mano \
97 RO_DB_PASSWORD=manopw \
98 RO_DB_OVIM_PASSWORD=manopw \
100 RO_DB_OVIM_PORT=3306 \
102 RO_DB_OVIM_NAME=mano_vim_db \
103 OPENMANO_TENANT=osm \
108 # HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=12 \
109 # CMD curl --silent --fail localhost:9090/openmano/tenants || exit 1