diff --git a/.gitignore b/.gitignore index 3a5c903..1811edc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea +.sonarqube [oO]bj [bB]in \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index afd72f2..3896c98 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,24 @@ -# STAGE 1: Build Environment -FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build-env +FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build-env WORKDIR /src ARG NUGET_API_KEY -# Copy the project files first for better layer caching (if only code changes) COPY . ./ -# Add the custom NuGet source -RUN dotnet nuget add source https://nuget.pkg.github.com/trumpee/index.json --name github --username trumpee --password $NUGET_API_KEY --store-password-in-clear-text +RUN dotnet nuget add source https://nuget.pkg.github.com/trumpee/index.json \ + --name github \ + --username trumpee \ + --password $NUGET_API_KEY \ + --store-password-in-clear-text -# Restore NuGet packages from both sources -RUN dotnet restore Gateway.sln --source "https://api.nuget.org/v3/index.json" --source "https://nuget.pkg.github.com/trumpee/index.json" +RUN dotnet restore Gateway.sln \ + --source "https://api.nuget.org/v3/index.json" \ + --source "https://nuget.pkg.github.com/trumpee/index.json" -# Build the solution -RUN dotnet build Gateway.sln -c Release +RUN dotnet build Gateway.sln -c Debug +RUN dotnet publish ./src/Api/Api.csproj -c Debug -o /app -# Publish the Api project only (assuming this is the main entry point) -RUN dotnet publish ./src/Api/Api.csproj -c Release -o /app - -# STAGE 2: Runtime Environment FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine WORKDIR /app COPY --from=build-env /app . - -# Expose the port your application listens on (replace 80 if needed) -EXPOSE 80 - -# Define the entry point for your application ENTRYPOINT ["dotnet", "Api.dll"] diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 513d27e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3.9' - -services: - mongo: - image: mongo - restart: always - container_name: mongo_server - environment: - - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} - - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} - networks: - - trumpee_backend_vpn - ports: - - 23001:27017 - - gateway_api: - build: - context: . - dockerfile: Dockerfile - restart: always - container_name: trumpee_gateway_api - networks: - - trumpee_backend_vpn - ports: - - 22001:22001 - -networks: - trumpee_backend_vpn: - name: trumpee_backend_vpn diff --git a/infra-only-docker-compose.yml b/infra-only-docker-compose.yml deleted file mode 100644 index 2cb664c..0000000 --- a/infra-only-docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3.9' - -services: - mongo: - image: mongo - restart: always - container_name: mongo_server - environment: - - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} - - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} - networks: - - trumpee_backend_vpn - ports: - - 23001:27017 - - rabbitmq: - image: masstransit/rabbitmq - container_name: rabbitmq - ports: - - 5672:5672 - - 15672:15672 - networks: - - trumpee_backend_vpn - restart: unless-stopped - -networks: - trumpee_backend_vpn: - name: trumpee_backend_vpn diff --git a/sonarqube-docker-compose.yaml b/sonarqube-docker-compose.yaml new file mode 100644 index 0000000..a4def23 --- /dev/null +++ b/sonarqube-docker-compose.yaml @@ -0,0 +1,50 @@ +version: "3" +services: + sonarqube: + image: sonarqube:community + container_name: sonarqube + depends_on: + - db + environment: + SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar + SONAR_JDBC_USERNAME: sonar + SONAR_JDBC_PASSWORD: sonar + volumes: + - sonarqube_data:/opt/sonarqube/data + - sonarqube_extensions:/opt/sonarqube/extensions + - sonarqube_logs:/opt/sonarqube/logs + ports: + - "9000:9000" + db: + image: postgres:13 + hostname: postgresql + container_name: postgresql + environment: + POSTGRES_USER: sonar + POSTGRES_PASSWORD: sonar + POSTGRES_DB: sonar + volumes: + - postgresql:/var/lib/postgresql + - postgresql_data:/var/lib/postgresql/data + + sonar-scanner: + container_name: sonar-scanner + image: newtmitch/sonar-scanner + networks: + - sonarnet + volumes: + - ./:/usr/src + depends_on: + - sonarqube + +networks: + sonarnet: + +volumes: + sonarqube_conf: + sonarqube_data: + sonarqube_logs: + sonarqube_extensions: + sonarqube_bundled-plugins: + postgresql: + postgresql_data: diff --git a/src/Api/appsettings.json b/src/Api/appsettings.json index 13e924a..733f8c9 100644 --- a/src/Api/appsettings.json +++ b/src/Api/appsettings.json @@ -1,23 +1,23 @@ { "Logging": { "LogLevel": { - "Default": "Error", - "Microsoft.AspNetCore": "Error", + "Default": "Trace", + "Microsoft.AspNetCore": "Trace", "Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware": "None" } }, "AllowedHosts": "*", "MongoDb": { "DatabaseName": "trumpee", - "ConnectionString": "mongodb://root:password@localhost:23001/" + "ConnectionString": "mongodb://root:password@trumpee_mongodb:27017/" }, "MassTransit": { "Transport": { - "Host": "127.0.0.1", + "Host": "trumpee_rabbitmq", "VHost": "/", "Username": "guest", "Password": "guest", - "Port": 23501 + "Port": 5672 } } }