From d795f5265bde378eecb0dc0c71ca9756d691bb16 Mon Sep 17 00:00:00 2001 From: simonmicro Date: Sun, 11 Dec 2022 22:23:10 +0100 Subject: [PATCH] Fixed startup on minimal tag --- docker/start.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/docker/start.py b/docker/start.py index 0b2701f..14f678b 100644 --- a/docker/start.py +++ b/docker/start.py @@ -20,18 +20,19 @@ argumentVariableMapping = { '-e': 'EPID' } -dbPath = os.path.join(os.sep, 'home', 'py-kms', 'db', 'pykms_database.db') +db_path = os.path.join(os.sep, 'home', 'py-kms', 'db', 'pykms_database.db') log_level_bootstrap = log_level = os.environ.get('LOGLEVEL', 'INFO') if log_level_bootstrap == "MININFO": log_level_bootstrap = "INFO" log_file = os.environ.get('LOGFILE', 'STDOUT') listen_ip = os.environ.get('IP', '::').split() listen_port = os.environ.get('PORT', '1688') +want_webui = os.environ.get('WEBUI', '0') def start_kms(): # Make sure the full path to the db exists - if not os.path.exists(os.path.dirname(dbPath)): - os.makedirs(os.path.dirname(dbPath), exist_ok=True) + if want_webui and not os.path.exists(os.path.dirname(db_path)): + os.makedirs(os.path.dirname(db_path), exist_ok=True) # Build the command to execute command = [PYTHON3, '-u', 'pykms_Server.py', listen_ip[0], listen_port] @@ -44,19 +45,22 @@ def start_kms(): for i in range(1, len(listen_ip)): command.append("-n") command.append(listen_ip[i] + "," + listen_port) - command.append('-s') - command.append(dbPath) + if want_webui: + command.append('-s') + command.append(db_path) loggersrv.debug("server_cmd: %s" % (" ".join(str(x) for x in command).strip())) pykms_process = subprocess.Popen(command) + pykms_webui_process = None try: - time.sleep(2) # Wait for the server to start up - pykms_webui_env = os.environ.copy() - pykms_webui_env['PYKMS_SQLITE_DB_PATH'] = dbPath - pykms_webui_env['PORT'] = '8080' - pykms_webui_env['PYKMS_LICENSE_PATH'] = '/LICENSE' - pykms_webui_process = subprocess.Popen(['gunicorn', '--log-level', os.environ.get('LOGLEVEL'), 'pykms_WebUI:app'], env=pykms_webui_env) + if want_webui: + time.sleep(2) # Wait for the server to start up + pykms_webui_env = os.environ.copy() + pykms_webui_env['PYKMS_SQLITE_DB_PATH'] = db_path + pykms_webui_env['PORT'] = '8080' + pykms_webui_env['PYKMS_LICENSE_PATH'] = '/LICENSE' + 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) @@ -67,7 +71,9 @@ def start_kms(): pass except KeyboardInterrupt: pass - pykms_webui_process.terminate() + + if pykms_webui_process: + pykms_webui_process.terminate() pykms_process.terminate()