From 3edbc0edd4fa19ee0ea6df743dcb31e1f0a82ce4 Mon Sep 17 00:00:00 2001 From: gabdevele Date: Wed, 10 Jun 2026 21:35:10 +0200 Subject: [PATCH] fix docker startup config error --- main.cc | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/main.cc b/main.cc index 933dc4c..7854cc0 100644 --- a/main.cc +++ b/main.cc @@ -5,16 +5,46 @@ #include "repositories/MigrationRunner.h" #include +#include +#include int main() { setvbuf(stdout, nullptr, _IONBF, 0); (void)RequestLogger::classTypeName(); + Json::Value config; + std::ifstream configFile("config.json"); + if (configFile.is_open()) + { + configFile >> config; + + if (const char* envHost = std::getenv("DB_HOST")) + config["db_clients"][0]["host"] = envHost; + if (const char* envPort = std::getenv("DB_PORT")) + config["db_clients"][0]["port"] = std::stoi(envPort); + if (const char* envUser = std::getenv("DB_USER")) + config["db_clients"][0]["user"] = envUser; + if (const char* envPass = std::getenv("DB_PASSWORD")) + config["db_clients"][0]["passwd"] = envPass; + if (const char* envDb = std::getenv("DB_NAME")) + config["db_clients"][0]["dbname"] = envDb; + + if (const char* envSmtpHost = std::getenv("SMTP_HOST")) + config["custom_config"]["mail"]["smtp_host"] = envSmtpHost; + if (const char* envSmtpPort = std::getenv("SMTP_PORT")) + config["custom_config"]["mail"]["smtp_port"] = std::stoi(envSmtpPort); + + drogon::app().loadConfigJson(config); + } + else + { + drogon::app().loadConfigFile("config.json"); + } + Json::Value requestLoggerConfig; requestLoggerConfig["include_query"] = true; - drogon::app().loadConfigFile("config.json"); drogon::app().addPlugin("RequestLogger", {}, requestLoggerConfig); visione::cors::configure();