blob: 2816d0a0996d9a4bd1b6f5e629b22fcf3e303465 [file] [log] [blame]
beierlm2663b792021-02-22 14:30:35 -05001##
2# Copyright ETSI
tiernod125caf2018-11-22 16:05:54 +00003#
beierlm2663b792021-02-22 14:30:35 -05004# 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
tiernod125caf2018-11-22 16:05:54 +00009#
10# Unless required by applicable law or agreed to in writing, software
beierlm2663b792021-02-22 14:30:35 -050011# 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##
tiernod125caf2018-11-22 16:05:54 +000016
beierlm2663b792021-02-22 14:30:35 -050017########################################################################
tiernoa8d63632018-05-10 13:12:32 +020018
beierlm2663b792021-02-22 14:30:35 -050019FROM ubuntu:18.04 as INSTALL
Mike Marchettic678d042018-04-18 13:51:27 -040020
beierlm2663b792021-02-22 14:30:35 -050021WORKDIR /build
Mike Marchettic678d042018-04-18 13:51:27 -040022
beierlm2663b792021-02-22 14:30:35 -050023RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
24 DEBIAN_FRONTEND=noninteractive apt-get --yes install \
25 gcc git python3 python3-dev python3-venv python3-pip \
26 python3-setuptools wget && \
27 python3 -m pip install -U pip build
calvinosanch675b8042020-01-09 16:10:12 +010028
beierlm2663b792021-02-22 14:30:35 -050029COPY . /build
tiernoaae4dc42018-06-11 18:55:50 +020030
beierlm2663b792021-02-22 14:30:35 -050031RUN git clone https://osm.etsi.org/gerrit/osm/common.git
32RUN git clone https://osm.etsi.org/gerrit/osm/IM.git
tiernoa8d63632018-05-10 13:12:32 +020033
beierlm2663b792021-02-22 14:30:35 -050034RUN python3 -m pip install \
35 -r requirements.txt \
36 -r common/requirements.txt \
37 -r IM/requirements.txt
38
39RUN python3 -m build /build/common && \
40 python3 -m pip install /build/common/dist/*.whl
41
42RUN python3 -m build /build/IM && \
43 python3 -m pip install /build/IM/dist/*.whl
44
45RUN python3 -m build /build && \
46 python3 -m pip install /build/dist/*.whl
47
48
49FROM ubuntu:18.04 as FINAL
50
51RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
52 DEBIAN_FRONTEND=noninteractive apt-get --yes install python3-minimal
53
54COPY --from=INSTALL /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages
55COPY --from=INSTALL /usr/local/lib/python3.6/dist-packages /usr/local/lib/python3.6/dist-packages
56
57RUN mkdir -p /app/storage/kafka && mkdir -p /app/log
58
59WORKDIR /app/osm_nbi
Mike Marchettic678d042018-04-18 13:51:27 -040060
61EXPOSE 9999
62
beierlm2663b792021-02-22 14:30:35 -050063RUN cp -R /usr/local/lib/python3.6/dist-packages/osm_nbi/html_public /app/osm_nbi/html_public
64RUN cp /usr/local/lib/python3.6/dist-packages/osm_nbi/nbi.cfg /app/osm_nbi/
65RUN cp -R /usr/local/lib/python3.6/dist-packages/osm_nbi/http /app/osm_nbi/
Mike Marchettic678d042018-04-18 13:51:27 -040066
67# Used for local storage
68VOLUME /app/storage
69# Used for logs
70VOLUME /app/log
71
72# The following ENV can be added with "docker run -e xxx' to configure
73# server
beierlm2663b792021-02-22 14:30:35 -050074ENV OSMNBI_SOCKET_HOST 0.0.0.0
75ENV OSMNBI_SOCKET_PORT 9999
76ENV OSMNBI_SERVER_SSL_CERTIFICATE /app/osm_nbi/http/cert.pem
77ENV OSMNBI_SERVER_SSL_PRIVATE_KEY /app/osm_nbi/http/privkey.pem
78
Mike Marchettic678d042018-04-18 13:51:27 -040079# storage
beierlm2663b792021-02-22 14:30:35 -050080ENV OSMNBI_STORAGE_PATH /app/storage
81
Mike Marchettic678d042018-04-18 13:51:27 -040082# database
beierlm2663b792021-02-22 14:30:35 -050083ENV OSMNBI_DATABASE_DRIVER mongo
84ENV OSMNBI_DATABASE_URI mongodb://mongo:27017
85#ENV OSMNBI_DATABASE_HOST mongo
86#ENV OSMNBI_DATABASE_PORT 27017
87
Mike Marchettic678d042018-04-18 13:51:27 -040088# web
beierlm2663b792021-02-22 14:30:35 -050089ENV OSMNBI_STATIC_DIR /app/osm_nbi/html_public
tierno4836bac2020-01-15 14:41:48 +000090
Mike Marchettic678d042018-04-18 13:51:27 -040091# message
beierlm2663b792021-02-22 14:30:35 -050092ENV OSMNBI_MESSAGE_DRIVER kafka
93ENV OSMNBI_MESSAGE_HOST kafka
94ENV OSMNBI_MESSAGE_PORT 9092
95
96# logs
97ENV OSMNBI_LOG_FILE /app/log/nbi.log
98ENV OSMNBI_LOG_LEVEL DEBUG
99
Eduardo Sousa819d34c2018-07-31 01:20:02 +0100100# authentication
101ENV OSMNBI_AUTHENTICATION_BACKEND internal
102#ENV OSMNBI_AUTHENTICATION_BACKEND keystone
beierlm2663b792021-02-22 14:30:35 -0500103#ENV OSMNBI_AUTHENTICATION_AUTH_URL keystone
Eduardo Sousa819d34c2018-07-31 01:20:02 +0100104#ENV OSMNBI_AUTHENTICATION_AUTH_PORT 5000
105#ENV OSMNBI_AUTHENTICATION_USER_DOMAIN_NAME default
106#ENV OSMNBI_AUTHENTICATION_PROJECT_DOMAIN_NAME default
107#ENV OSMNBI_AUTHENTICATION_SERVICE_USERNAME nbi
108#ENV OSMNBI_AUTHENTICATION_SERVICE_PASSWORD nbi
109#ENV OSMNBI_AUTHENTICATION_SERVICE_PROJECT service
beierlm2663b792021-02-22 14:30:35 -0500110
111#prometheus
vijay.r35ef2f72019-04-30 17:55:49 +0530112ENV OSMNBI_PROMETHEUS_HOST prometheus
113ENV OSMNBI_PROMETHEUS_PORT 9090
Mike Marchettic678d042018-04-18 13:51:27 -0400114
Mike Marchettic678d042018-04-18 13:51:27 -0400115# Run app.py when the container launches
beierlm2663b792021-02-22 14:30:35 -0500116CMD ["python3", "-u", "-m", "osm_nbi.nbi"]