From 2452462f16d29f4451f668727833f2aa00a0b202 Mon Sep 17 00:00:00 2001 From: Alexander van Delft Date: Mon, 27 Jan 2025 14:57:02 +0100 Subject: [PATCH] Prerelease 10.0.0-rc1 --- CDP4Authentication/CDP4Authentication.csproj | 2 +- .../CDP4DatabaseAuthentication.csproj | 2 +- CDP4Orm/CDP4Orm.csproj | 8 +-- .../CDP4WspDatabaseAuthentication.csproj | 2 +- COMET-WebServices.sln | 1 + CometServer/CometServer.csproj | 10 +-- CometServer/Startup.cs | 3 +- DockerfilePreRelease | 54 +++++++++++++++ README.Create-RC.txt | 13 +++- docker-compose-integration-tests.yml | 67 +++++++++++++++++++ docker-compose.yml | 2 +- 11 files changed, 146 insertions(+), 18 deletions(-) create mode 100644 DockerfilePreRelease create mode 100644 docker-compose-integration-tests.yml diff --git a/CDP4Authentication/CDP4Authentication.csproj b/CDP4Authentication/CDP4Authentication.csproj index 84b4dafd..cf256b1d 100644 --- a/CDP4Authentication/CDP4Authentication.csproj +++ b/CDP4Authentication/CDP4Authentication.csproj @@ -4,7 +4,7 @@ net9.0 Starion Group S.A. CDP4Authentication-CE - 9.0.0 + 10.0.0 CDP4-COMET Library to support the implementation of authentication Copyright © Starion Group S.A. Sam Gerené, Alex Vorobiev, Alexander van Delft diff --git a/CDP4DatabaseAuthentication/CDP4DatabaseAuthentication.csproj b/CDP4DatabaseAuthentication/CDP4DatabaseAuthentication.csproj index e5ec58d0..5bac30d9 100644 --- a/CDP4DatabaseAuthentication/CDP4DatabaseAuthentication.csproj +++ b/CDP4DatabaseAuthentication/CDP4DatabaseAuthentication.csproj @@ -4,7 +4,7 @@ net9.0 Starion Group S.A. CDP4DatabaseAuthentication-CE - 9.0.0 + 10.0.0 CDP4-COMET Database authentication Copyright © Starion Group S.A. Sam Gerené, Alex Vorobiev, Alexander van Delft diff --git a/CDP4Orm/CDP4Orm.csproj b/CDP4Orm/CDP4Orm.csproj index a2d3e01e..b63fd4ce 100644 --- a/CDP4Orm/CDP4Orm.csproj +++ b/CDP4Orm/CDP4Orm.csproj @@ -3,7 +3,7 @@ net9.0 Starion Group S.A. CDP4Orm-CE - 9.0.0 + 10.0.0 CDP4-COMET Data-Model Object Relational Mapping Copyright © Starion Group S.A. Sam Gerené, Alex Vorobiev, Alexander van Delft @@ -75,9 +75,9 @@ - - - + + + diff --git a/CDP4WspDatabaseAuthentication/CDP4WspDatabaseAuthentication.csproj b/CDP4WspDatabaseAuthentication/CDP4WspDatabaseAuthentication.csproj index f9f6be41..6647032c 100644 --- a/CDP4WspDatabaseAuthentication/CDP4WspDatabaseAuthentication.csproj +++ b/CDP4WspDatabaseAuthentication/CDP4WspDatabaseAuthentication.csproj @@ -4,7 +4,7 @@ net9.0 Starion Group S.A. CDP4WspDatabaseAuthentication-CE - 9.0.0 + 10.0.0 CDP4-COMET WSP Database authentication Copyright © Starion Group S.A. Sam Gerené, Alex Vorobiev, Alexander van Delft diff --git a/COMET-WebServices.sln b/COMET-WebServices.sln index 1ebf15d8..b3cc2c71 100644 --- a/COMET-WebServices.sln +++ b/COMET-WebServices.sln @@ -27,6 +27,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution docker-compose-nginx.yml = docker-compose-nginx.yml docker-compose.yml = docker-compose.yml Dockerfile = Dockerfile + DockerfilePreRelease = DockerfilePreRelease Nuget.Config = Nuget.Config README.md = README.md EndProjectSection diff --git a/CometServer/CometServer.csproj b/CometServer/CometServer.csproj index 57c08cdd..204faa13 100644 --- a/CometServer/CometServer.csproj +++ b/CometServer/CometServer.csproj @@ -3,7 +3,7 @@ net9.0 Starion Group S.A. CometServer-CE - 9.0.0 + 10.0.0 CDP4-COMET Services API Copyright © Starion Group S.A. AGPL-3.0-only @@ -19,9 +19,9 @@ - - - + + + @@ -39,7 +39,7 @@ - + diff --git a/CometServer/Startup.cs b/CometServer/Startup.cs index 6bd01835..6db1588c 100644 --- a/CometServer/Startup.cs +++ b/CometServer/Startup.cs @@ -162,8 +162,7 @@ public void ConfigureContainer(ContainerBuilder builder) builder.RegisterType().As().SingleInstance(); builder.RegisterAssemblyTypes(typeof(IMetaInfo).Assembly).Where(x => typeof(IMetaInfo).IsAssignableFrom(x)).AsImplementedInterfaces().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies).InstancePerLifetimeScope(); builder.RegisterType().As().As().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies).InstancePerLifetimeScope(); - builder.Register(_ => - new Cdp4DalJsonSerializer(false)).As().InstancePerLifetimeScope(); + builder.Register(_ => new Cdp4DalJsonSerializer(false)).As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); // authentication services diff --git a/DockerfilePreRelease b/DockerfilePreRelease new file mode 100644 index 00000000..ab1d31bd --- /dev/null +++ b/DockerfilePreRelease @@ -0,0 +1,54 @@ +# syntax=docker/dockerfile:1.4 + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env +WORKDIR /app +COPY CDP4Authentication CDP4Authentication +COPY CDP4DatabaseAuthentication CDP4DatabaseAuthentication +COPY CDP4WspDatabaseAuthentication CDP4WspDatabaseAuthentication +COPY CDP4Orm CDP4Orm +COPY VersionFileCreator VersionFileCreator +COPY CometServer CometServer + +RUN --mount=type=secret,id=SDK_PRE_RELEASE_NUGET_USERNAME --mount=type=secret,id=SDK_PRE_RELEASE_NUGET_PASSWORD SDK_PRE_RELEASE_NUGET_PASSWORD=$(cat /run/secrets/SDK_PRE_RELEASE_NUGET_PASSWORD) \ +&& export SDK_PRE_RELEASE_NUGET_PASSWORD \ +&& SDK_PRE_RELEASE_NUGET_USERNAME=$(cat /run/secrets/SDK_PRE_RELEASE_NUGET_USERNAME) \ +&& export SDK_PRE_RELEASE_NUGET_USERNAME \ +&& dotnet nuget add source https://nuget.pkg.github.com/STARIONGROUP/index.json --name github --username ${SDK_PRE_RELEASE_NUGET_USERNAME} --password ${SDK_PRE_RELEASE_NUGET_PASSWORD} --store-password-in-clear-text + + +RUN dotnet build CDP4DatabaseAuthentication -c Release +RUN dotnet build CDP4WspDatabaseAuthentication -c Release +RUN dotnet publish -r linux-x64 CometServer -c Release -o /app/CometServer/bin/Release/publish + +FROM mcr.microsoft.com/dotnet/aspnet:9.0.1-alpine3.21 +WORKDIR /app +RUN mkdir /app/logs +RUN mkdir /app/storage +RUN mkdir /app/tempstorage +RUN mkdir /app/upload + +RUN mkdir /app/Authentication/ +RUN mkdir /app/Authentication/CDP4Database +RUN mkdir /app/Authentication/CDP4WspDatabase +RUN mkdir /app/VersionFileCreator + +COPY --from=build-env /app/CometServer/bin/Release/publish . +RUN rm /app/appsettings.Development.json +RUN mv /app/appsettings.Production.json /app/appsettings.json + +# COPY CDP4DatabaseAuthentication plugin +COPY --from=build-env /app/CDP4DatabaseAuthentication/bin/Release/CDP4DatabaseAuthentication.dll /app/Authentication/CDP4Database/CDP4DatabaseAuthentication.dll +COPY --from=build-env /app/CDP4DatabaseAuthentication/bin/Release/config.json /app/Authentication/CDP4Database/config.json + +# COPY CDP4WspDatabaseAuthentication plugin +COPY --from=build-env /app/CDP4WspDatabaseAuthentication/bin/Release/CDP4WspDatabaseAuthentication.dll /app/Authentication/CDP4WspDatabase/CDP4WspDatabaseAuthentication.dll +COPY --from=build-env /app/CDP4WspDatabaseAuthentication/bin/Release/config.json /app/Authentication/CDP4WspDatabase/config.json + +COPY --from=build-env /app/VersionFileCreator/bin/Release /app/VersionFileCreator +RUN dotnet /app/VersionFileCreator/VersionFileCreator.dll path:/app +RUN rm -r /app/VersionFileCreator + +# set to use the non-root USER here +RUN chown -R $APP_UID /app +USER $APP_UID +CMD ["dotnet", "CometServer.dll"] \ No newline at end of file diff --git a/README.Create-RC.txt b/README.Create-RC.txt index 647ad692..87ed9595 100644 --- a/README.Create-RC.txt +++ b/README.Create-RC.txt @@ -1,3 +1,10 @@ -docker pull mcr.microsoft.com/dotnet/sdk:8.0 -DOCKER_BUILDKIT=1 docker build -f Dockerfile -t stariongroup/comet-webservices-community-edition:8.0.0-rc39 . -docker push stariongroup/comet-webservices-community-edition:8.0.0-rc39 \ No newline at end of file +docker pull mcr.microsoft.com/dotnet/sdk:9.0 +DOCKER_BUILDKIT=1 docker build -f Dockerfile -t stariongroup/comet-webservices-community-edition:10.0.0-rc1 . +docker push stariongroup/comet-webservices-community-edition:10.0.0-rc1 + + +Pre-Release having a SDK pre release on GitHub: + +export SDK_PRE_RELEASE_NUGET_USERNAME= +export SDK_PRE_RELEASE_NUGET_PASSWORD= +DOCKER_BUILDKIT=1 docker build --secret id=SDK_PRE_RELEASE_NUGET_USERNAME,env=SDK_PRE_RELEASE_NUGET_USERNAME --secret id=SDK_PRE_RELEASE_NUGET_PASSWORD,env=SDK_PRE_RELEASE_NUGET_PASSWORD -f DockerfilePreRelease -t stariongroup/comet-webservices-community-edition:10.0.0-rc1 . \ No newline at end of file diff --git a/docker-compose-integration-tests.yml b/docker-compose-integration-tests.yml new file mode 100644 index 00000000..88fca7be --- /dev/null +++ b/docker-compose-integration-tests.yml @@ -0,0 +1,67 @@ +version: '3.8' +services: + + comet_db: + image: stariongroup/cdp4-test-database-community-edition:3.4.0 + container_name: comet-db + shm_size: 2gb + restart: always + command: postgres -c max_locks_per_transaction=1024 + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=pass + hostname: comet-db + networks: + comet: + aliases: + - comet-db + ports: + - '5432:5432' + expose: + - '5432' + volumes: + - comet-db-data:/var/lib/postgresql/data + - comet-db-logs:/logs + + comet_webservices: + image: stariongroup/comet-webservices-community-edition:10.0.0-rc1 + container_name: comet-webservices + shm_size: 512m + restart: always + hostname: comet-webservices + networks: + comet: + aliases: + - comet-webservices + depends_on: + - comet_db + ports: + - "5000:5000" + expose: + - '5000' + volumes: + - comet-ws-logs:/app/logs + - comet-ws-storage:/app/storage + - comet-ws-uplaod:/app/upload + + rabbitmq: + image: "rabbitmq:3-management" + container_name: rabbitmq + restart: always + ports: + - 15672:15672 + networks: + - comet + volumes: + - 'rabbitmq_data:/data' + +networks: + comet: + +volumes: + comet-db-data: + comet-db-logs: + comet-ws-logs: + comet-ws-storage: + comet-ws-uplaod: + rabbitmq_data: \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 49cfe5f0..ef651de6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,7 @@ services: - comet-db-logs:/logs comet_webservices: - image: stariongroup/comet-webservices-community-edition:8.0.1 + image: stariongroup/comet-webservices-community-edition:10.0.0-rc1 container_name: comet-webservices shm_size: 512m restart: always