Repository navigation
Dockerize
The CDP4-COMET Webservices and database are available as Docker images. This page describes how to create the Docker images locally. To deploy these images refer to the Docker page. For complete documentation on Docker itself, please refer to the official docs
These docs are written for developers that have access to the Starion Group account on Docker Hub. However, if you don't have such an account you can still use these steps to build, tag and push to your own private docker repository.
This image can be pushed to a private repository or a public one such as Docker Hub.
- Prior to making a new release verify that all unit tests in the solution pass and that all the integration tests pass. If the tests fail FIX FIRST before you continue
- Update the version number of the
CometServerproject and push to GitHub - Verify that the integration test suite executed by the GitHub action passes. If the tests fail FIX FIRST before you continue
- Create a tag on GitHub
- Build the image, attach the SBOM and provenance attestations, and push it to Docker Hub with the
latestand version tags:The script pulls the latest./docker-build-attested.sh x.y.zmcr.microsoft.com/dotnet/sdk:10.0build image. The runtime image is the exact version in theFROMline of theDockerfile(for examplemcr.microsoft.com/dotnet/aspnet:10.0.13-alpine3.24). To build an image locally without pushing it, use./docker-build-local.sh x.y.z. - Create release notes on GitHub using the previously created tag. State the .NET runtime version of the image (the runtime image in the
FROMline of theDockerfile), so that operators can tell whether their image is affected by a .NET security advisory. The running server logs the same information at startup:INF Runtime: .NET 10.0.13 on Alpine Linux v3.24 (linux-musl-x64) - Update the description on the Docker Hub page
Microsoft publishes .NET servicing releases on the second Tuesday of the month ("Patch Tuesday"), most of them with security fixes. The Docker image contains the .NET runtime, so operators cannot apply these fixes themselves: they need a new CDP4-COMET image.
- Dependabot (
.github/dependabot.yml) checks every week and opens pull requests todevelopmentfor:- the runtime image in the
Dockerfile(for exampleaspnet:10.0.13-alpine3.24toaspnet:10.0.14-alpine3.24); - the .NET NuGet packages (
Microsoft.*andSystem.*), grouped into one pull request.
- the runtime image in the
- Merge these pull requests once the CI build, including the integration test suite, passes.
- When a .NET release fixes a vulnerability in ASP.NET Core, Kestrel or the runtime, release a new patch version of the CDP4-COMET WebServices, even when nothing else changed, following Releasing a new Docker image.
- Check
dotnet list COMET-WebServices.sln package --vulnerable --include-transitivebefore the release. Thenuget package reference checkworkflow runs the same check every day; GitHub disables scheduled workflows after 60 days without activity in the repository, so check that it is still enabled (gh workflow list --all).
The .NET releases are listed on the .NET 10 release notes page.
copyright @ Starion Group S.A.