Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion src/ServiceControl.Audit/Container-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The `particular/servicecontrol-audit` image is part of the Particular Service Pl
| [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) | [Instance Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/deployment/containers) | The primary/error instance, which includes error handling and recoverability |
| [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) | [Instance Documentation](https://docs.particular.net/servicecontrol/audit-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/audit-instances/deployment/containers) | The audit instance, which stores audit data, and can be scaled out to multiple audit instances |
| [`particular/servicecontrol-monitoring`](https://hub.docker.com/r/particular/servicecontrol-monitoring) | [Instance Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/deployment/containers) | The monitoring instance, which tracks runtime information like throughput, queue length, and other metrics |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database used by the error/audit instances |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database for error/audit instances using RavenDB persistence |
| [`particular/servicepulse`](https://hub.docker.com/r/particular/servicepulse) | [App Documentation](https://docs.particular.net/servicepulse/)<br/>[Container Documentation](https://docs.particular.net/servicepulse/containerization/) | The web application that provides a front end for recoverability and monitoring features |

## Usage
Expand All @@ -18,10 +18,29 @@ The following is the most basic way to create an audit container using [Docker](
docker run -d --name audit -p 44444:44444 \
-e TRANSPORTTYPE=RabbitMQ.QuorumConventionalRouting \
-e CONNECTIONSTRING="host=rabbitmq" \
-e PERSISTENCETYPE=RavenDB \
-e RAVENDB_CONNECTIONSTRING="http://audit-db:8080" \
particular/servicecontrol-audit:latest --setup-and-run
```

### Persistence

Set `PERSISTENCETYPE` to select the database. RavenDB is the default.

| `PERSISTENCETYPE` | Connection string environment variable |
|-------------------|---------------------------------------|
| `RavenDB` | `RAVENDB_CONNECTIONSTRING` |
| `SQLServer` | `DATABASE_CONNECTIONSTRING` |
| `PostgreSQL` | `DATABASE_CONNECTIONSTRING` |

For SQL Server and PostgreSQL, create the database before running setup. The `particular/servicecontrol-ravendb` image is not needed for either relational database. Audit instances store message bodies in the database and do not require separate message body storage settings or volumes.

The audit instance uses the `sc_audit` schema by default. Set `DATABASE_SCHEMA` to override it. Error and audit instances can share a database but must use different schemas.

Setup creates a missing schema if the database user has permission. Otherwise, create the schema and grant the required permissions before running setup. For an existing instance, set `DATABASE_SCHEMA` to the schema containing its data; ServiceControl does not move existing tables. See [SQL persister schemas](https://github.com/Particular/ServiceControl/blob/master/docs/sql-persister-schemas.md).

These settings also accept the `SERVICECONTROL_AUDIT_` prefix, for example `SERVICECONTROL_AUDIT_PERSISTENCETYPE` and `SERVICECONTROL_AUDIT_DATABASE_CONNECTIONSTRING`. Use prefixed settings when error and audit containers share environment configuration but need different persistence settings.

For all other usage information see the [official container documentation](https://docs.particular.net/servicecontrol/audit-instances/deployment/containers).

## Image tagging
Expand Down
2 changes: 1 addition & 1 deletion src/ServiceControl.Monitoring/Container-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The `particular/servicecontrol-monitoring` image is part of the Particular Servi
| [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) | [Instance Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/deployment/containers) | The primary/error instance, which includes error handling and recoverability |
| [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) | [Instance Documentation](https://docs.particular.net/servicecontrol/audit-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/audit-instances/deployment/containers) | The audit instance, which stores audit data, and can be scaled out to multiple audit instances |
| [`particular/servicecontrol-monitoring`](https://hub.docker.com/r/particular/servicecontrol-monitoring) | [Instance Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/deployment/containers) | The monitoring instance, which tracks runtime information like throughput, queue length, and other metrics |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database used by the error/audit instances |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database for error/audit instances using RavenDB persistence |
| [`particular/servicepulse`](https://hub.docker.com/r/particular/servicepulse) | [App Documentation](https://docs.particular.net/servicepulse/)<br/>[Container Documentation](https://docs.particular.net/servicepulse/containerization/) | The web application that provides a front end for recoverability and monitoring features |

## Usage
Expand Down
4 changes: 2 additions & 2 deletions src/ServiceControl.RavenDB/Container-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ The `particular/servicecontrol-ravendb` image is part of the Particular Service
| [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) | [Instance Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/deployment/containers) | The primary/error instance, which includes error handling and recoverability |
| [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) | [Instance Documentation](https://docs.particular.net/servicecontrol/audit-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/audit-instances/deployment/containers) | The audit instance, which stores audit data, and can be scaled out to multiple audit instances |
| [`particular/servicecontrol-monitoring`](https://hub.docker.com/r/particular/servicecontrol-monitoring) | [Instance Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/deployment/containers) | The monitoring instance, which tracks runtime information like throughput, queue length, and other metrics |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database used by the error/audit instances |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database for error/audit instances using RavenDB persistence |
| [`particular/servicepulse`](https://hub.docker.com/r/particular/servicepulse) | [App Documentation](https://docs.particular.net/servicepulse/)<br/>[Container Documentation](https://docs.particular.net/servicepulse/containerization/) | The web application that provides a front end for recoverability and monitoring features |

This image is the database used by the [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) and [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) images, based on the official [RavenDB image](https://hub.docker.com/r/ravendb/ravendb).
This image provides the database for the [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) and [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) images when `PERSISTENCETYPE=RavenDB` (the default). It is based on the official [RavenDB image](https://hub.docker.com/r/ravendb/ravendb). Instances using `PERSISTENCETYPE=SQLServer` or `PERSISTENCETYPE=PostgreSQL` do not need this image.

The purpose of this image is to provide version parity between ServiceControl and database containers. Users can be sure that a given version of the `servicecontrol` and `servicecontrol-audit` container images have been tested with and are known to work with the matching version of `servicecontrol-ravendb`.

Expand Down
29 changes: 28 additions & 1 deletion src/ServiceControl/Container-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The `particular/servicecontrol` image is part of the Particular Service Platform
| [`particular/servicecontrol`](https://hub.docker.com/r/particular/servicecontrol) | [Instance Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/deployment/containers) | The primary/error instance, which includes error handling and recoverability |
| [`particular/servicecontrol-audit`](https://hub.docker.com/r/particular/servicecontrol-audit) | [Instance Documentation](https://docs.particular.net/servicecontrol/audit-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/audit-instances/deployment/containers) | The audit instance, which stores audit data, and can be scaled out to multiple audit instances |
| [`particular/servicecontrol-monitoring`](https://hub.docker.com/r/particular/servicecontrol-monitoring) | [Instance Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/)<br/>[Container Documentation](https://docs.particular.net/servicecontrol/monitoring-instances/deployment/containers) | The monitoring instance, which tracks runtime information like throughput, queue length, and other metrics |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database used by the error/audit instances |
| [`particular/servicecontrol-ravendb`](https://hub.docker.com/r/particular/servicecontrol-ravendb) | [Container Documentation](https://docs.particular.net/servicecontrol/ravendb/containers) | The database for error/audit instances using RavenDB persistence |
| [`particular/servicepulse`](https://hub.docker.com/r/particular/servicepulse) | [App Documentation](https://docs.particular.net/servicepulse/)<br/>[Container Documentation](https://docs.particular.net/servicepulse/containerization/) | The web application that provides a front end for recoverability and monitoring features |

## Usage
Expand All @@ -18,12 +18,39 @@ The following is the most basic way to create ServiceControl containers using [D
docker run -d --name servicecontrol -p 33333:33333 \
-e TRANSPORTTYPE=RabbitMQ.QuorumConventionalRouting \
-e CONNECTIONSTRING="host=rabbitmq" \
-e PERSISTENCETYPE=RavenDB \
-e RAVENDB_CONNECTIONSTRING="http://servicecontrol-db:8080" \
-e REMOTEINSTANCES='[{"api_uri":"http://audit:44444/api"}]' \
-e ENABLEINTEGRATEDSERVICEPULSE="true" \
particular/servicecontrol:latest --setup-and-run
```

### Persistence

Set `PERSISTENCETYPE` to select the database. RavenDB is the default.

| `PERSISTENCETYPE` | Connection string environment variable |
|-------------------|---------------------------------------|
| `RavenDB` | `RAVENDB_CONNECTIONSTRING` |
| `SQLServer` | `DATABASE_CONNECTIONSTRING` |
| `PostgreSQL` | `DATABASE_CONNECTIONSTRING` |

For SQL Server and PostgreSQL, create the database before running setup. SQL Server requires the Full-Text Search feature. The `particular/servicecontrol-ravendb` image is not needed for either relational database.

The error instance uses the connection or provider default schema, typically `dbo` on SQL Server or `public` on PostgreSQL. Set `DATABASE_SCHEMA` to override it. Error and audit instances can share a database but must use different schemas.

Setup creates a missing schema if the database user has permission. Otherwise, create the schema and grant the required permissions before running setup. For an existing instance, set `DATABASE_SCHEMA` to the schema containing its data; ServiceControl does not move existing tables. See [SQL persister schemas](https://github.com/Particular/ServiceControl/blob/master/docs/sql-persister-schemas.md).

SQL Server and PostgreSQL also require `MESSAGEBODY_STORAGETYPE` to select where message bodies are stored:

| `MESSAGEBODY_STORAGETYPE` | Required configuration |
|--------------------------|------------------------|
| `FileSystem` | Set `MESSAGEBODY_FILESYSTEM_STORAGEPATH` to a directory backed by a persistent volume and writable by the container user. Without a persistent volume, recreating the container loses message bodies. |
| `AzureBlob` | Set exactly one of `MESSAGEBODY_AZURE_CONNECTIONSTRING` or `MESSAGEBODY_AZURE_SERVICEURI`. A service URI uses managed identity. |
| `S3` | Set `MESSAGEBODY_S3_BUCKETNAME`. Uses the default AWS credential chain unless both `MESSAGEBODY_S3_ACCESSKEYID` and `MESSAGEBODY_S3_SECRETACCESSKEY` are set. |

These settings also accept the `SERVICECONTROL_` prefix, for example `SERVICECONTROL_PERSISTENCETYPE` and `SERVICECONTROL_DATABASE_CONNECTIONSTRING`.

For all other usage information see the [official container documentation](https://docs.particular.net/servicecontrol/servicecontrol-instances/deployment/containers).

## Image tagging
Expand Down
Loading