diff --git a/tools/ws/Dockerfile b/tools/ws/Dockerfile index 8a67448..0bb777b 100644 --- a/tools/ws/Dockerfile +++ b/tools/ws/Dockerfile @@ -3,6 +3,7 @@ FROM python:latest LABEL Maintainer="Wolfgang Hottgenroth wolfgang.hottgenroth@icloud.com" ARG APP_DIR="/opt/app" +ARG CONF_DIR="${APP_DIR}/config" RUN \ apt update && \ @@ -15,19 +16,21 @@ RUN \ RUN \ mkdir -p ${APP_DIR} && \ + mkdir -p ${CONF_DIR} && \ useradd -d ${APP_DIR} -u 1000 user COPY *.py ${APP_DIR}/ COPY swagger.yaml ${APP_DIR}/ -COPY server.ini ${APP_DIR}/ +COPY server.ini ${CONF_DIR}/ USER 1000:1000 WORKDIR ${APP_DIR} +VOLUME ${CONF_DIR} EXPOSE 5000 EXPOSE 9191 -CMD [ "uwsgi", "server.ini" ] +CMD [ "uwsgi", "./config/server.ini" ] diff --git a/tools/ws/dbpool.py b/tools/ws/dbpool.py index 79405fa..712b03a 100644 --- a/tools/ws/dbpool.py +++ b/tools/ws/dbpool.py @@ -2,15 +2,15 @@ import mariadb pool = None -def createConnectionPool(): +def createConnectionPool(config): global pool pool = mariadb.ConnectionPool( - user = 'heroes', - password = 'test123', - host = '172.16.10.18', - database = 'heroes', - pool_name = 'wep-app', + user = config['user'], + password = config['password'], + host = config['host'], + database = config['database'], + pool_name = 'heroes-wep-app', pool_size = 5 ) diff --git a/tools/ws/server.ini b/tools/ws/server.ini index 81f216b..d7f5ca8 100644 --- a/tools/ws/server.ini +++ b/tools/ws/server.ini @@ -5,3 +5,9 @@ processes = 4 threads = 2 stats = :9191 +[database] +host = 172.16.10.18 +user = heroes +password = test123 +database = heroes + diff --git a/tools/ws/server.py b/tools/ws/server.py index c6aeb4c..4a43071 100644 --- a/tools/ws/server.py +++ b/tools/ws/server.py @@ -1,9 +1,15 @@ import connexion from flask_cors import CORS from dbpool import createConnectionPool +import configparser + + +# load configuration +config = configparser.ConfigParser() +config.read('./config/server.ini') # prepare database connections -createConnectionPool() +createConnectionPool(config['database']) # instantiate the webservice app = connexion.App(__name__)