Merge "bug 801 increase healthcheck timeout for NBI/POL/MON"
[osm/devops.git] / docker / NBI / Dockerfile
1 # This creates osm/NBI docker from local NBI source code
2
3 FROM ubuntu:16.04
4
5 RUN apt-get update && apt-get -y install curl software-properties-common
6
7 RUN apt-get update && apt-get install -y git python3 python3-jsonschema \
8     python3-pymongo python3-yaml python3-pip python3-keystoneclient \
9     && pip3 install pip==9.0.3 \
10     && pip3 install aiokafka aiohttp cherrypy==18.0.0 pyangbind keystoneauth1 \
11     && mkdir -p /app/storage/kafka && mkdir -p /app/log
12
13 ARG REPOSITORY_BASE=http://osm-download.etsi.org/repository/osm/debian
14 ARG RELEASE=ReleaseFOUR-daily
15 ARG REPOSITORY_KEY=OSM%20ETSI%20Release%20Key.gpg
16 ARG REPOSITORY=testing
17
18 RUN curl ${REPOSITORY_BASE}/${RELEASE}/${REPOSITORY_KEY} | apt-key add -
19 RUN add-apt-repository -y "deb ${REPOSITORY_BASE}/${RELEASE} ${REPOSITORY} NBI IM common" && apt update
20
21 ARG NBI_VERSION
22 ARG COMMON_VERSION
23 ARG IM_VERSION
24
25 RUN apt-get update && apt-get -y install python3-osm-nbi${NBI_VERSION} python3-osm-common${COMMON_VERSION} python3-osm-im${IM_VERSION}
26
27 # Set the working directory to /app
28 WORKDIR /app/osm_nbi
29
30 EXPOSE 9999
31
32 RUN cp -R /usr/lib/python3/dist-packages/osm_nbi/html_public /app/osm_nbi/html_public
33 RUN cp /usr/lib/python3/dist-packages/osm_nbi/nbi.cfg /app/osm_nbi/
34 RUN cp -R /usr/lib/python3/dist-packages/osm_nbi/http /app/osm_nbi/
35
36 LABEL Maintainer="alfonso.tiernosepulveda@telefonica.com" \
37       Description="This implements a north bound interface for OSM" \
38       Version="1.0" \
39       Author="Alfonso Tierno"
40
41 # Used for local storage
42 VOLUME /app/storage
43 # Used for logs
44 VOLUME /app/log
45
46 # The following ENV can be added with "docker run -e xxx' to configure
47 # server
48 ENV OSMNBI_SOCKET_HOST     0.0.0.0
49 ENV OSMNBI_SOCKET_PORT     9999
50 # storage
51 ENV OSMNBI_STORAGE_PATH    /app/storage
52 # database
53 ENV OSMNBI_DATABASE_DRIVER mongo
54 ENV OSMNBI_DATABASE_URI   mongodb://mongo:27017
55 #ENV OSMNBI_DATABASE_HOST   mongo
56 #ENV OSMNBI_DATABASE_PORT   27017
57
58 # web
59 ENV OSMNBI_STATIC_DIR      /app/osm_nbi/html_public
60 # logs
61 ENV OSMNBI_LOG_FILE        /app/log
62 ENV OSMNBI_LOG_LEVEL       DEBUG
63 # message
64 ENV OSMNBI_MESSAGE_DRIVER  kafka
65 ENV OSMNBI_MESSAGE_HOST    kafka
66 ENV OSMNBI_MESSAGE_PORT    9092
67 # logs
68 ENV OSMNBI_LOG_FILE        /app/log/nbi.log
69 ENV OSMNBI_LOG_LEVEL       DEBUG
70 # authentication
71 ENV OSMNBI_AUTHENTICATION_BACKEND               internal
72 #ENV OSMNBI_AUTHENTICATION_BACKEND               keystone
73 #ENV OSMNBI_AUTHENTICATION_AUTH_URL              keystone
74 #ENV OSMNBI_AUTHENTICATION_AUTH_PORT             5000
75 #ENV OSMNBI_AUTHENTICATION_USER_DOMAIN_NAME      default
76 #ENV OSMNBI_AUTHENTICATION_PROJECT_DOMAIN_NAME   default
77 #ENV OSMNBI_AUTHENTICATION_SERVICE_USERNAME      nbi
78 #ENV OSMNBI_AUTHENTICATION_SERVICE_PASSWORD      nbi
79 #ENV OSMNBI_AUTHENTICATION_SERVICE_PROJECT       service
80 #prometheus
81 ENV OSMNBI_PROMETHEUS_HOST                      prometheus
82 ENV OSMNBI_PROMETHEUS_PORT                      9090
83
84 HEALTHCHECK --start-period=120s --interval=10s --timeout=5s --retries=5 \
85   CMD curl -k https://localhost:9999/osm/ | grep Welcome || exit 1
86
87 # Run app.py when the container launches
88 CMD ["python3", "/usr/lib/python3/dist-packages/osm_nbi/nbi.py"]