RO docker container based on ubuntu 18.04
[osm/RO.git] / docker / Dockerfile-local
1 ##
2 # Copyright {yyyy} {name of copyright owner}
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
7 #
8 #         http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
14 # under the License.
15 ##
16
17 ########################################################################
18
19 from ubuntu:18.04
20
21 LABEL authors="Gennadiy Dubina, Alfonso Tierno, Gerardo Garcia"
22
23 RUN apt-get update && \
24     DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common && \
25     DEBIAN_FRONTEND=noninteractive apt-get update && \
26     DEBIAN_FRONTEND=noninteractive apt-get -y install git python python-pip && \
27     DEBIAN_FRONTEND=noninteractive apt-get -y install wget tox && \
28     DEBIAN_FRONTEND=noninteractive pip2 install pip==9.0.3 && \
29     DEBIAN_FRONTEND=noninteractive pip2 install -U progressbar pyvmomi pyvcloud==19.1.1 && \
30     DEBIAN_FRONTEND=noninteractive pip2 install -U fog05rest && \
31     DEBIAN_FRONTEND=noninteractive pip2 install -U azure && \
32     DEBIAN_FRONTEND=noninteractive apt-get -y install python-requests && \
33     DEBIAN_FRONTEND=noninteractive apt-get -y install python-novaclient python-keystoneclient python-glanceclient python-cinderclient python-neutronclient python-networking-l2gw && \
34     DEBIAN_FRONTEND=noninteractive apt-get -y install python-cffi libmysqlclient-dev libssl-dev libffi-dev python-mysqldb && \
35     DEBIAN_FRONTEND=noninteractive apt-get -y install python-openstacksdk python-openstackclient && \
36     DEBIAN_FRONTEND=noninteractive apt-get -y install python-networkx && \
37     DEBIAN_FRONTEND=noninteractive apt-get -y install genisoimage && \
38     DEBIAN_FRONTEND=noninteractive pip2 install untangle && \
39     DEBIAN_FRONTEND=noninteractive pip2 install pyone && \
40     DEBIAN_FRONTEND=noninteractive pip2 install -e git+https://github.com/python-oca/python-oca#egg=oca && \
41     DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-client
42
43 COPY . /root/RO
44
45 RUN /root/RO/scripts/install-osm-im.sh --develop && \
46     /root/RO/scripts/install-lib-osm-openvim.sh --develop && \
47     make -C /root/RO prepare && \
48     mkdir -p /var/log/osm && \
49     pip2 install -e /root/RO/build && \
50     rm -rf /root/.cache && \
51     apt-get clean && \
52     rm -rf /var/lib/apt/lists/*
53
54 VOLUME /var/log/osm
55
56 EXPOSE 9090
57
58 # Two mysql databases are needed (DB and DB_OVIM). Can be hosted on same or separated containers
59 # These ENV must be provided
60 # RO_DB_HOST: host of the main
61 # RO_DB_OVIM_HOST: ...        if empty RO_DB_HOST is assumed
62 # RO_DB_ROOT_PASSWORD: this has to be provided first time for creating database. It will create and init only if empty!
63 # RO_DB_OVIM_ROOT_PASSWORD: ...  if empty RO_DB_ROOT_PASSWORD is assumed
64 # RO_DB_USER:    default value 'mano'
65 # RO_DB_OVIM_USER:       default value 'mano'
66 # RO_DB_PASSWORD:        default value 'manopw'
67 # RO_DB_OVIM_PASSWORD:        default value 'manopw'
68 # RO_DB_PORT:             default value '3306'
69 # RO_DB_OVIM_PORT:        default value '3306'
70 # RO_DB_NAME:             default value 'mano_db'
71 # RO_DB_OVIM_NAME:        default value 'mano_vim_db'
72 # RO_LOG_FILE:            default log to stderr if not defined
73
74 ENV RO_DB_HOST="" \
75     RO_DB_OVIM_HOST="" \
76     RO_DB_ROOT_PASSWORD="" \
77     RO_DB_OVIM_ROOT_PASSWORD="" \
78     RO_DB_USER=mano \
79     RO_DB_OVIM_USER=mano \
80     RO_DB_PASSWORD=manopw \
81     RO_DB_OVIM_PASSWORD=manopw \
82     RO_DB_PORT=3306 \
83     RO_DB_OVIM_PORT=3306 \
84     RO_DB_NAME=mano_db \
85     RO_DB_OVIM_NAME=mano_vim_db \
86     OPENMANO_TENANT=osm \
87     RO_LOG_LEVEL=DEBUG
88
89 CMD RO-start.sh
90
91 # HEALTHCHECK --start-period=30s --interval=10s --timeout=5s --retries=12 \
92 #  CMD curl --silent --fail localhost:9090/openmano/tenants || exit 1