Docker Installations

Topic Contents [Hide]Topic Contents [Show]
  1. Docker Prerequisites
  2. ATS CM4D Configuration Plugin and API
    1. CM4D Config Plugin/API Docker Image
    2. CM4D Config Plugin/API Docker Configuration
  3. ATS CM4D Peruse
    1. Peruse Docker Images
    2. Peruse Docker Configuration
  4. ATS CM4D Results Services
    1. Results Services Docker Images
    2. StreamCacheSmith Docker Image
    3. Results Services Docker Configuration
  5. ATS CM4D Upload Portal
    1. Upload Portal Docker Images
    2. Upload Portal Docker Configuration

The following ATS CM4D modules support Windows or Linux Docker deployments:

The available docker images can be found on the ATS Product repository on Docker Hub.

Docker Prerequisites

The Docker tool is the minimal requirement to deploy and manage the Docker container.

Please visit the following URLs for a detailed explanation:

ATS CM4D Configuration Plugin and API

ATS CM4D Configuration API is the application component of the ATS CM4D Configuration package. The package also includes the ATS CM4D Configuration plugin component which is installed via ATS Configuration Manager. The CM4D API deployment options also support Docker on Windows and Linux environments.

CM4D Config Plugin/API Docker Image

CM4D API docker images can also be used to configure using Docker compose and Kubernetes. ATS Docker images can be found on the ATS Product repository on Docker Hub.

Linux Image
Windows Image

The image tag defines the image version, or you can always use the [latest] tag.

For example:

atsproducts/ats.cm4d.api-win-x64-dev:1.0.22283.4

atsproducts/ats.cm4d.api-win-x64-dev:latest

CM4D Config Plugin/API Docker Configuration

The following properties are used to run the CM4D API image:

ID Item Description Example Value
1 Kestrel__EndPoints__Http__Url Default configuration for running on application port inside the container.

http://*:5200

2 ASPNETCORE_URLS Default configuration which URL's to be use for the ASPNET Core application in the environment.

http://+:5200

3 ConnectionStrings__DefaultConnection Connection string to ATS CM4D Configuration database

4 DataSmithTranslatorService__Endpoint Connection to DataSmith.NET Translator

5 Serilog__Using__0 Log configuration: Provider Sinks. Options can be found on https://github.com/serilog/serilog/wiki/Provided-Sinks

Serilog.Sinks.Console

6 Serilog__MinimumLevel Log configuration: Log Level configuration

Debug

7 Serilog__WriteTo__0__Name Log configuration: Definition for output of logs

Console

8 Serilog__Enrich__0 Log configuration: Enrich levels for logging

FromLogContext

9 Serilog__Enrich__1 Log configuration: Enrich levels for logging

WithMachineName

10 Serilog__Enrich__2 Log configuration: Enrich levels for logging

WithThreadId

11 Serilog__Properties__Application Log configuration: Definition for application name

CM4D.API

12 Serilog__Properties__MachineName Log configuration: Definition for application machine name

MachineATS

13 Authorization__Authority Link to authority server| in this case is link to ATS Security Manager

14 Authorization__ApiName API Name is used for the API to identify to Security Manager. The Id is part of the Application Configuration for CM4D Application. This ID must be the same as the ID from #23.

dc9a0f58-7b68-4e34-811b-fd4c9a71af69

15 Authorization__RequireHttpsMetadata Gets or sets if HTTPS is required for the metadata address or authority. The default is true. This should be disabled only in development environments.

FALSE

16 Authorization__ApplicationId ID of the CM4D Application. The Id can be found in ATS Security Manager under Applications

17 DataProtectionConfiguration__KeyStorage__Type Data Protection Configuration. Docker containers are transient which means that when a container is destroyed| all information with it are deleted and this includes information for the hardware configuration. Some data in ATS CM4D are signed with data protection that is build based on the hardware configuration and when the container is deleted the data verification will fail. Therefore you can configure custom data protection that is not depended from the container configuration but in this case dependent from a certificate that is injected in the container.

FileSystem

18 DataProtectionConfiguration__KeyStorage__FileSystem__Path Data Protection Configuration: location for keeping the configuration. It is recommended to use a mount volume.

/app/keyrings/cm4dapi

19 DataProtectionConfiguration__KeyProtection__Type Data Protection Configuration: Type of Protection

CertificatePEM

20 DataProtectionConfiguration__KeyProtection__CertificatePEM__CertificatePath Data Protection Configuration: certificate file

/app/keyrings/certs/ados-playground.pem

21 DataProtectionConfiguration__KeyProtection__CertificatePEM__KeyPath Data Protection Configuration: certificate key

/app/keyrings/certs/ados-playground.key

22 Cm4DUploadPortal__Url Location to Upload Portal

23 UploadInfo__ApiResources__0__Id Upload Application Configuration information: API resource ID

DC9A0F58-7B68-4E34-811B-FD4C9A71AF69

24 UploadInfo__ApiResources__0__Name Upload Application Configuration information: API Resource Name

CM4DAPI Api Resource

25 UploadInfo__ApiResources__0__Scope Upload Application Configuration information: API Resource Scope

CM4DAPI

26 UploadInfo__ApiResources__1__Id Upload Application Configuration information: API resource ID

297EAD3A-7AE4-41C0-9291-86FB505953E6

27 UploadInfo__ApiResources__1__Name Upload Application Configuration information: API Resource Name

CM4DAPI DataSmith Proxy

28 UploadInfo__ApiResources__1__Scope Upload Application Configuration information: API  Resource Scope

CM4DAPI

29 UploadInfo__ApiResources__2__Id Upload Application Configuration information: API resource ID

22f0e3a0-9004-4945-88e6-86caaa9db317

30 UploadInfo__ApiResources__2__Name Upload Application Configuration information:  API Resource Name

ATS Licensing Manager Web API

31 UploadInfo__ApiResources__2__Scope Upload Application Configuration information: API  Resource Scope

ATS.LicensingServer

32 UploadInfo__ApiResources__3__Id Upload Application Configuration information: API resource id

09b6d6a4-e3b6-488c-8773-07b3f040b017

33 UploadInfo__ApiResources__3__Name Upload Application Configuration information: API Resource Name

PeruseAPI

34 UploadInfo__ApiResources__3__Scope Upload Application Configuration information: API Resource Scope

PeruseAPI

35 UploadInfo__Clients__0__ClientName Upload Application Configuration information: Client Name

CM4D Upload Portal

36 UploadInfo__Clients__0__ClientId Upload Application Configuration information: Client ID

33871b43-c68e-47a2-bde2-3e7d03458c54

37 UploadInfo__Clients__0__RedirectUris__0 Upload Application Configuration information: Client Redirect URL

https://upload-portal.local/auth-callback.html

38 UploadInfo__Clients__0__RedirectUris__1 Upload Application Configuration information: Client Redirect URL

https://upload-portal.local/silent-refresh

39 UploadInfo__Clients__0__PostLogoutRedirectUris__0 Upload Application Configuration information: Post Logout URL

https://upload-portal.local/

40 UploadInfo__Clients__1__ClientName Upload Application Configuration information: Client Name

ATSCM4D Peruse

41 UploadInfo__Clients__1__ClientId Upload Application Configuration information: Client ID

feffadae-fc78-44f9-81c1-927e1d7faa62

42 UploadInfo__Clients__1__RedirectUris__0 Upload Application Configuration information: Client Redirect URL

https://peruse-local/auth-callback

43 UploadInfo__Clients__1__RedirectUris__1 Upload Application Configuration information: Client Redirect URL

https://peruse-local/silent-refresh

44 UploadInfo__Clients__1__PostLogoutRedirectUris__0 Upload Application Configuration information: Post Logout URL

https://peruse-local/

45 UploadInfo__Clients__1__ForceSecureConnStringInProd Definition if the connection string should be encrypted 

FALSE

46 AllowedHost Allowed host to access the API

*

47 Licensing__Authority Link to Licensing Server

https://licensing-local/

48 Configuration__BasePath Configuration of Base Path

/cm4dapi

 

ATS CM4D Peruse

ATS CM4D Peruse is the application component as part of ATS CM4D Peruse package. The package includes the ATS CM4D Peruse UI and ATS CM4D Peruse API component. For both services, deployment options are supported for Docker on Windows and Linux environments.

Peruse Docker Images

Peruse UI and Peruse API docker images can also be used to configure using Docker compose and Kubernetes. ATS Docker images can be found on the ATS Product repository on Docker Hub.

Linux Images
Windows Images

The image tag defines the image version, or you can always use the [latest] tag.

For example, atsproducts/ats.cm4d.peruseapi-linux-x64-dev:20230131.2

For example, atsproducts/ats.cm4d.peruseapi-linux-x64-dev:latest

Peruse Docker Configuration

CM4D Peruse runs on two images: ATS CM4D Peruse UI and ATS CM4D Peruse API.

Peruse UI Image Properties

The following properties are used to run the CM4D Peruse UI image:

ID Item Description Example Value
1 Kestrel__EndPoints__Http__Url Default configuration for running on application port inside the container

http://*:4000

2 ASPNETCORE_URLS Default configuration which URL's to be use for the ASPNET Core application in the environment

http://+:4000

3 Configuration__webApi Configuration to Peruse API link

4 Configuration__ATSSecurityManager Link to authority server| in this case is link to ATS Security Manager

5 Configuration__data__HoopsEndpoint Configuration of the HOOPS Endpoint link

wss://hoops.local:11180

6 Configuration__clientId The Id of the Peruse Client. The Id can be found on the ATS Configuration| under Application and under the CM4D application details for OAUTH Clients.

feffadae-fc78-44f9-81c1-927e1d7faa62

7 Configuration__scope The list of scopes (access level) to request when asking a user to authenticate. We strongly recommend to use the same settings described in the Example Value column.

openid profile 09b6d6a4-e3b6-488c-8773-07b3f040b017\\PeruseAPI SecurityManager.SecuritySettingsScope 22f0e3a0-9004-4945-88e6-86caaa9db317\\ATS.LicensingServer offline_access

8 Configuration__BasePath Configuration of Base Path

/peruse

9 Configuration__data__heartbeatrate Number of milliseconds to refresh the license for Peruse. If not specified  the default value is 10000

10000

Example configuration file for Peruse UI: peruseui.env.txt

Peruse API Properties

The following properties are used to run the CM4D Peruse API image:

id Item Descripton Example Value
1 Kestrel__EndPoints__Http__Url=http://*:2000 Default configuration for running on application port inside the container

http://*:2000

2 ASPNETCORE_URLS=http://+:2000 Default configuration which URL's to be use for the ASPNET Core application in the environment

http://+:2000

3 AllowedHosts Allowed host to access the API

*

4 ConnectionStrings__SiteDatabase Connection string to ATS CM4D Site database

5 Authorization__Authority Link to authority server| in this case is link to ATS Security Manager

6 Authorization__ApiName API Name is used for the API to identify to Security Manager. The ID is part of the Application Configuration for CM4D Application.

09b6d6a4-e3b6-488c-8773-07b3f040b017

7 Authorization__RequireHttpsMetadata Gets or sets if HTTPS is required for the metadata address or authority. The default is true. This should be disabled only in development environments.

FALSE

8 Authorization__ApplicationId ID of the CM4D Application. The Id can be found in ATS Security Manager under Applications.

 

9 Cm4dApi__Endpoint Configuration of CM4D API endpoint link

https://cm4d-local:5200

10 UploadInfo__Peruse__ClientName Upload Application Configuration information: Client Name

ATSCM4D Peruse

11 UploadInfo__Peruse__ClientId Upload Application Configuration information: Client ID

feffadae-fc78-44f9-81c1-927e1d7faa62

12 UploadInfo__Peruse__RedirectUris__0 Upload Application Configuration information: Client Redirect URL

https://peruse.local:4000/auth-callback

13 UploadInfo__Peruse__RedirectUris__1 Upload Application Configuration information: Client Redirect URL

https://peruse.local:4000/silent-refresh

14 UploadInfo__Peruse__PostLogoutRedirectUris Upload Application Configuration information: Post Logout URL

https://peruse.local:4000

15 UploadInfo__Peruse__ForceSecureConnStringInProd Definition if the connection string should be encrypted 

FALSE

16 Configuration__BasePath Configuration of Base Path

/peruseapi

17 Licensing__Authority Link to Licensing Server

https://licensing-local/

Example configuration file for Peruse API: peruseapi.env.txt

ATS CM4D Results Services

ATS CM4D Results Services are the service component of the ATS CM4D Server package. CM4D Results services runs on three images: CM4D Results Loader, CM4D Results Sender and CM4D StreamCacheSmith. The CM4D Results services deployment options also support Docker on Windows and Linux environments.

Results Services Docker Images

CM4D Results Services docker images can also be used to configure using Docker compose and Kubernetes. ATS Docker images can be found on the ATS Product repository on Docker Hub.

Linux Images
Windows Images

The image tag defines the image version, or you can always use the [latest] tag.

For example, atsproducts/ats.cm4d.resultssender-linux-x64-dev:25.2.23068.2

For example, atsproducts/ats.cm4d.resultssender-linux-x64-dev:latest

StreamCacheSmith Docker Image

The StreamCacheSmith Service writes to the file system, so it must be mounted (cannot write to a container). Mount the image, then configure the directory and temporary directory.

Results Services Docker Configuration

The following properties are used to run the ATS CM4D Results Loader image:

ID Item Description Example Value
1 Configuration__ResultsConcurrencyLimit ResultsConcurrencyLimit

0

2 ConnectionStrings__ResultsDatabase Connection string to ATS CM4D Results database

server=(local);database=CM4DResults;user id=testuser;password=testuser;TrustServerCertificate=Yes;

3 ConnectionStrings__SiteDatabase Connection string to ATS CM4D Site database

server=(local);database=CM4DSite;user id=testuser;password=testuser;TrustServerCertificate=Yes;

4 NServiceBus__ServiceControl__AuditQueue The audit queue name

 

5 NServiceBus__ServiceControl__ErrorQueue The error queue name

error

6 NServiceBus__ServiceControl__ServiceControlQueue The service control queue name

Particular.ServiceControl

7 NServiceBus__ServiceControl__MonitoringQueue The service control monitoring queue name

Particular.Monitoring

8 Endpoint__Name The endpoint name

ATS.CM4D.Conestoga.ResultsLoaderEndpoint

9 Endpoint__LimitMessageProcessingConcurrencyTo The number of processing concurrency message

1

7 Endpoint__Recoverability__ImmediateRetries The number of immediate retries

3

8 Endpoint__Recoverability__DelayedRetries The number of delayed retries

3

9 Endpoint__Transport__Name The NServiceBus transport is the way the messages are sent from one node to another. The system can be a distributed deployment, such as a local CM4D Site database and a cloud-based Results database

SQL

10 Endpoint__Transport__TransactionMode The transaction mode

ReceiveOnly

11 Endpoint__Transport__ConnectionString Connection string to ATS CM4D Site database

 

12 Endpoint__Persistence__Name The persistency configuration defines where the data is stored

SQL

13 Endpoint__Persistence__ConnectionString Connection string to ATS CM4D Site database

 

14 Serilog__MinimumLevel Log configuration: Log Level configuraiton

Information

15 Serilog__EnableAppInsight Enabling AppInsight

FALSE

16 Serilog__InsightKey Insight key

 

17 Serilog__EventLogRestrictedToMinimumLevel EventLogRestrictedToMinimumLevel

Warning

18 Serilog__EventLogOutputTemplate EventLogOutputTemplate

{Message}{NewLine}{Exception}

19 Serilog__EventLogManageEventSource EventLogManageEventSource

FALSE

20 Serilog__WriteTo__0__Name Log configuration: Definition for output of logs

Console

21 Serilog__WriteTo__0__Args__outputTemplate Log configuration: Path for outputTemplate

{Timestamp:o} [{Level:u3}] [{ThreadId}] ({Application}/{MachineName}) {Message}{NewLine}{Exception}

22 Serilog__WriteTo__1__Name Log configuration: Definition for output of logs

File

23 Serilog__WriteTo__1__Args__Path File path for writing log events

./logs/log_.txt

24 Serilog__WriteTo__1__Args__outputTemplate Defines the format or template for how log events will be rendered when they are written to that particular sink

{Timestamp:o} [{Level:u3}] ({Application}/{MachineName}) {Message}{NewLine}{Exception}

25 Serilog__WriteTo__1__Args__rollingInterval Configuration option used when setting up a logger to specify how often log files should be rolled or rotated

Day

26 Serilog__WriteTo__1__Args__fileSizeLimitBytes The maximum size that a log file can reach before it's closed and a new log file is created

2097152

27 Serilog__WriteTo__1__Args__rollOnFileSizeLimit Allows you to specify whether or not log files should be rolled over (archived and a new file started) when a certain file size limit is reached

TRUE

28 Serilog__WriteTo__1__Args__retainedFileCountLimit Manages the number of log files retained when logging to a file sink

2000

29 Serilog__Enrich__0 Log configuration: Enrich levels for logging

FromLogContext

30 Serilog__Enrich__1 Log configuration: Enrich levels for logging

WithMachineName

31 Serilog__Enrich__2 Log configuration: Enrich levels for logging

WithThreadId

32 Serilog__Properties__Application Log configuration: Definition for application name

ResultsLoader

33 Serilog__Properties__MachineName Log configuration: Definition for application machine name

MachineATS

Example configuration file: resultsLoader.env.txt

The following properties are used to run the ATS CM4D Results Sender image:

ID Item Description Example Value
1 ConnectionStrings__SiteDatabase Connection string to ATS CM4D Site database

server=(local);database=CM4DSite;user id=testuser;password=testuser;TrustServerCertificate=Yes;

2 NServiceBus__ServiceControl__AuditQueue The audit queue name

 

3 NServiceBus__ServiceControl__ErrorQueue The error queue name

error

4 NServiceBus__ServiceControl__ServiceControlQueue The service control queue name

Particular.ServiceControl

5 NServiceBus__ServiceControl__MonitoringQueue The service control monitoring queue name

Particular.Monitoring

6 Endpoint__Name The endpoint name

ATS.CM4D.Conestoga.ResultsSenderEndpoint

6 Endpoint__LimitMessageProcessingConcurrencyTo The number of processing concurrency message

1

7 Endpoint__Recoverability__ImmediateRetries The number of immediate retries

3

8 Endpoint__Recoverability__DelayedRetries The number of delayed retries

3

9 Endpoint__Transport__Name The NServiceBus transport is the way the messages are sent from one node to another. The system can be a distributed deployment, such as a local CM4D Site database and a cloud-based Results database

SQL

10 Endpoint__Transport__TransactionMode The transaction mode

ReceiveOnly

11 Endpoint__Transport__ConnectionString Connection string to ATS CM4D Site database

 

12 Endpoint__Persistence__Name The persistency configuration defines where the data is stored

SQL

13 Endpoint__Persistence__ConnectionString Connection string to ATS CM4D Site database

 

16 Serilog__Using__0 Log configuration: Provider Sinks. Options can be found on https://github.com/serilog/serilog/wiki/Provided-Sinks

Serilog.Sinks.Console

17 Serilog__MinimumLevel Log configuration: Log Level configuraiton

Information

18 Serilog__EnableAppInsight Enabling AppInsight

FALSE

19 Serilog__InsightKey Insight key

 

20 Serilog__EventLogRestrictedToMinimumLevel EventLogRestrictedToMinimumLevel

Warning

21 Serilog__EventLogOutputTemplate EventLogOutputTemplate

{Message}{NewLine}{Exception}

22 Serilog__EventLogManageEventSource EventLogManageEventSource

FALSE

23 Serilog__WriteTo__0__Name Log configuration: Definition for output of logs

Console

24 Serilog__WriteTo__1__Name Log configuration: Definition for output of logs

File

25 Serilog__WriteTo__1__Args__Path File path for writing log events

.\\Logs\\ResultSenderLog_.txt

26 Serilog__WriteTo__1__Args__outputTemplate Defines the format or template for how log events will be rendered when they are written to that particular sink

{Timestamp:o} [{Level:u3}] ({Application}/{MachineName}) {Message}{NewLine}{Exception}

27 Serilog__WriteTo__1__Args__rollingInterval Configuration option used when setting up a logger to specify how often log files should be rolled or rotated

Day

28 Serilog__WriteTo__1__Args__fileSizeLimitBytes The maximum size that a log file can reach before it's closed and a new log file is created

2097152

29 Serilog__WriteTo__1__Args__rollOnFileSizeLimit Allows you to specify whether or not log files should be rolled over (archived and a new file started) when a certain file size limit is reached

TRUE

30 Serilog__WriteTo__1__Args__retainedFileCountLimit Manages the number of log files retained when logging to a file sink

2000

31 Serilog__Enrich__0 Log configuration: Enrich levels for logging

FromLogContext

32 Serilog__Enrich__1 Log configuration: Enrich levels for logging

WithMachineName

33 Serilog__Enrich__2 Log configuration: Enrich levels for logging

WithThreadId

34 Serilog__Properties__Application Log configuration: Definition for application name

ATS.CM4D.ResultsSender

35 Serilog__Properties__MachineName Log configuration: Definition for application machine name

MachineATS

36 AllowedHosts Specifies a list of hostnames that are allowed to access the application

*

Example configuration file: resultsSender.env.txt

ATS CM4D Upload Portal

ATS CM4D Upload Portal is the application component of the ATS CM4D Upload Portal package. The package also requires the ATS CM4D Configuration plugin component which is installed via ATS Configuration Manager and the CM4D API component included in the ATS CM4D Configuration package. The CM4D Upload Portal deployment options also support Docker on Windows and Linux environments.

The Upload Portal component runs on three images: CM4D Upload Portal, DataSmith Translator and DataSmith Batch Proxy.

Upload Portal Docker Images

CM4D Upload Portal docker images can also be used to configure using Docker compose and Kubernetes. ATS Docker images can be found on the ATS Product repository on Docker Hub.

Linux Images
Windows Images

The image tag defines the image version, or you can always use the [latest] tag.

For example, atsproducts/ats.upload.portal-win-x64-dev:1.0.23044.1

For example, atsproducts/ats.upload.portal-win-x64-dev:latest

Upload Portal Docker Configuration

The following properties are used to run the ATS CM4D Upload Portal image:

ID Item Description Example Value
1 Logging__LogLevel__Default Log level default

Debug

2 Logging__LogLevel__System Log level system

Information

3 Logging__LogLevel__Microsoft Log level microsoft

Information

4 Kestrel__EndPoints__Http__Url Default configuration for running on application port inside the container

http://*:4600

5 Configuration__webApi Configuration to CM4D API link

http://*:5200

6 Configuration__ATSSecurityManager Link to authority server| in this case is link to ATS Security Manager

http://*:5000

7 Configuration__clientId The Id of the UploadPortal Client. The Id can be found on the ATS Configuration| under Application and under the CM4D application details for OAUTH Clients

33871b43-c68e-47a2-bde2-3e7d03458c54

8 Configuration__scope The list of scopes (access level) to request when asking a user to authenticate. We strongly recommend to use the same settings described in the Example Value column

openid profile 09b6d6a4-e3b6-488c-8773-07b3f040b017\\\\CM4DAPI SecurityManager.SecuritySettingsScope offline_access

9 Configuration__version version

1.0.0

10 Configuration__BasePath Configuration of Base Path

 

11 Configuration__applicationId Application id

257F8879-1E6D-4CF6-9F42-9DBE53B0FB81

12 Configuration__heartbeatRate Periodic check that determines if a license obtained by a user is still in use

6000

Example configuration file: uploadPortal.env.txt

 

Can we improve this topic?