diff --git a/docker/docker-py3-kms/Dockerfile b/docker/docker-py3-kms/Dockerfile index 83f8934..996da01 100644 --- a/docker/docker-py3-kms/Dockerfile +++ b/docker/docker-py3-kms/Dockerfile @@ -1,6 +1,9 @@ # Switch to the target image FROM alpine:3.15 +ARG BUILD_COMMIT=unknown +ARG BUILD_BRANCH=unknown + ENV IP :: ENV PORT 1688 ENV EPID "" @@ -35,7 +38,10 @@ RUN apk add --no-cache --update \ COPY py-kms /home/py-kms/ COPY docker/entrypoint.py /usr/bin/entrypoint.py COPY docker/start.py /usr/bin/start.py + +# Web-interface specifics COPY LICENSE /LICENSE +RUN echo "$BUILD_COMMIT" > /VERSION && echo "$BUILD_BRANCH" >> /VERSION RUN chmod 755 /usr/bin/entrypoint.py diff --git a/docker/start.py b/docker/start.py index 14f678b..fd8a546 100644 --- a/docker/start.py +++ b/docker/start.py @@ -60,6 +60,7 @@ def start_kms(): pykms_webui_env['PYKMS_SQLITE_DB_PATH'] = db_path pykms_webui_env['PORT'] = '8080' pykms_webui_env['PYKMS_LICENSE_PATH'] = '/LICENSE' + pykms_webui_env['PYKMS_VERSION_PATH'] = '/VERSION' pykms_webui_process = subprocess.Popen(['gunicorn', '--log-level', os.environ.get('LOGLEVEL'), 'pykms_WebUI:app'], env=pykms_webui_env) except Exception as e: loggersrv.error("Failed to start webui: %s" % e) diff --git a/py-kms/pykms_WebUI.py b/py-kms/pykms_WebUI.py index 2a61341..437b4ee 100644 --- a/py-kms/pykms_WebUI.py +++ b/py-kms/pykms_WebUI.py @@ -3,17 +3,16 @@ from flask import Flask, render_template from pykms_Sql import sql_get_all from pykms_DB2Dict import kmsDB2Dict -serve_count = 0 - def _random_uuid(): return str(uuid.uuid4()).replace('-', '_') +_serve_count = 0 def _increase_serve_count(): - global serve_count - serve_count += 1 + global _serve_count + _serve_count += 1 def _get_serve_count(): - return serve_count + return _serve_count _kms_items = None _kms_items_ignored = None @@ -48,6 +47,15 @@ app = Flask('pykms_webui') app.jinja_env.globals['start_time'] = datetime.datetime.now() app.jinja_env.globals['get_serve_count'] = _get_serve_count app.jinja_env.globals['random_uuid'] = _random_uuid +app.jinja_env.globals['version_info'] = None + +_version_info_path = os.environ.get('PYKMS_VERSION_PATH', '../VERSION') +if os.path.exists(_version_info_path): + with open(_version_info_path, 'r') as f: + app.jinja_env.globals['version_info'] = { + 'hash': f.readline(), + 'branch': f.readline() + } @app.route('/') def root(): diff --git a/py-kms/templates/base.html b/py-kms/templates/base.html index 8b9f8d8..f64588d 100644 --- a/py-kms/templates/base.html +++ b/py-kms/templates/base.html @@ -40,6 +40,9 @@
py-kms is online since here.
+ {% if version_info %}
+
This instance is running version "{{ version_info['hash'] }}" from branch "{{ version_info['branch'] }}" of py-kms.
+ {% endif %}