diff --git a/.run/BlueWest-NoDocker.run.xml b/.run/BlueWest-NoDocker.run.xml new file mode 100644 index 0000000..f30ff1c --- /dev/null +++ b/.run/BlueWest-NoDocker.run.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/BlueWest.Api/Startup.cs b/BlueWest.Api/Startup.cs index cbc6334..4074972 100644 --- a/BlueWest.Api/Startup.cs +++ b/BlueWest.Api/Startup.cs @@ -146,7 +146,7 @@ namespace BlueWest.WebApi .AddSingleton(); - services.AddAuthServerServices( _configuration, _environment); + services.AddAuthServerServices( _configuration, _environment, configuration); services.AddScoped(); diff --git a/BlueWest.Api/StartupExtensions.cs b/BlueWest.Api/StartupExtensions.cs index 229b410..1ae0861 100644 --- a/BlueWest.Api/StartupExtensions.cs +++ b/BlueWest.Api/StartupExtensions.cs @@ -27,6 +27,25 @@ namespace BlueWest.WebApi public static class StartupExtensions { private static MySqlServerVersion GetMySqlServerVersion(int major, int minor, int build) => new (new Version(major, minor, build)); + + private static BlueWestConnectionString GetConnectionString(this IConfigurationRoot configurationRoot) + { + // Docker / No-Docker + var startupMode = configurationRoot["mode"]; + + if (startupMode == "docker") + { + var config = configurationRoot.Get(); + return config; + } + else + { + var config = configurationRoot.Get(); + return config; + } + + return null; + } /// /// Get MYSQL Connection String @@ -43,21 +62,9 @@ namespace BlueWest.WebApi var sqlVersion = GetMySqlServerVersion(8, 0, 11); // Docker / No-Docker - var startupMode = configurationRoot["mode"]; - - string mySqlConnectionString = String.Empty; - - if (startupMode == "docker") - { - var config = configuration.Get(); - if(config != null) mySqlConnectionString = config.MySql; - } - else - { - var config = configuration.Get(); - if(config != null) mySqlConnectionString = config.MySql; - } - + + string mySqlConnectionString = configurationRoot.GetConnectionString().MySql; + if (mySqlConnectionString == string.Empty) { throw new InvalidOperationException("Fatal error: MySQL Connection string is empty."); @@ -131,12 +138,18 @@ namespace BlueWest.WebApi } - internal static IServiceCollection AddAuthServerServices(this IServiceCollection services, IConfiguration configuration , IWebHostEnvironment environment) + internal static IServiceCollection AddAuthServerServices(this IServiceCollection services, IConfiguration configuration , IWebHostEnvironment environment, IConfigurationRoot configurationRoot) { + var connectionString = configurationRoot.GetConnectionString(); + + if (connectionString == null) + { + throw new InvalidOperationException("Redis connection string is empty"); + } services - .AddSingleton(new RedisConnectionProvider("redis://redisinstance:6379")) + .AddSingleton(new RedisConnectionProvider(connectionString.Redis)) .AddScoped() .AddScoped() .AddHostedService() diff --git a/BlueWest.Api/config.json b/BlueWest.Api/config.json index 22f4eb6..fb86f7e 100644 --- a/BlueWest.Api/config.json +++ b/BlueWest.Api/config.json @@ -1,5 +1,5 @@ { - "mode": "docker", + "mode": "no-docker", "database": "sqlite", "environment": "dev" } \ No newline at end of file diff --git a/data/dump.rdb b/data/dump.rdb new file mode 100644 index 0000000..5e04d97 Binary files /dev/null and b/data/dump.rdb differ diff --git a/docker-compose.db.only.yml b/docker-compose.db.only.yml index b3611f8..87462a7 100644 --- a/docker-compose.db.only.yml +++ b/docker-compose.db.only.yml @@ -1,29 +1,22 @@ version: '3' services: db: - container_name: BW1_DB_MYSQL + container_name: BW1_MYSQL image: mysql/mysql-server:8.0 environment: - MYSQL_ROOT_HOST: db - MYSQL_USER_HOST: db + MYSQL_ROOT_HOST: localhost + MYSQL_USER_HOST: localhost MYSQL_ROOT_PASSWORD: dXjw127124dJ MYSQL_USER: blueuser MYSQL_PASSWORD: dXjw127124dJ MYSQL_DATABASE: bluedb + ports: + - "3306:3306" volumes: - ./docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/ - phpmyadmin: - container_name: BW_PHPMYADMIN - image: phpmyadmin/phpmyadmin - ports: - - 80:80 - environment: - MYSQL_USERNAME: 'blueuser' - MYSQL_ROOT_PASSWORD: 'dXjw127124dJ' - # ports: - # - "3308:3306" - redis: - image: "redis:alpine" - command: redis-server + + redisinstance: + image: "redislabs/redismod" ports: - "6379:6379" + container_name: BW1_REDIS