Best Practice on Canton deployment

Hi team,

As we are going to deploy a case that each component (participant node, sequencers, mediators, etc) runs in separate containers, what is the best practice to deploy this? My first thought is, for each component, create a customized container image with the binary plus a proper configuration file and bootstrap. As a result we will have all the container images though the difference between them is just the configuration files and bootstrap contents. Any other suggestions?

Besides, when we create the customized container image, should we start with the linux and binary, or should we start with the canton docker image? If there is any sample Dockerfile how to build this with the proper configuration files, please share with me.

Many thanks in advance.

kc

Hi @kctam

We don’t have such images at the moment, but the way you describe it is exactly how I would do it.

For sequencer/mediator, I would just start with the linux and binary (and perhaps the database). For participant nodes, you might also want to include the JSON api, triggers and navigator. In that case, you can look at our docker deployment example for inspiration. (See the deployment/docker subdirectory of the release bundle.)