masesgroup/knet
Runner for KNet client applications, Apache Kafka server (ZooKeeper or KRaft), KNet/Apache Connect
449
The Docker images from this repository uses, as base image, the one available at mcr.microsoft.com/dotnet/runtime:6.0 or mcr.microsoft.com/dotnet/runtime:8.0. Within GitHub Container Registry you can find many legal information, specifically read carefully the following before use the images:
.NET suite for Apache Kafka comes with a ready made Docker image can work in multiple modes, the image name is knet:
The following are valid only from version 2.8.*.
The container image can work in multiple modes based on the environment variable KNET_DOCKER_RUNNING_MODE:
KNET_DOCKER_RUNNING_MODE not existent or empty: the image expect to run in command-line mode and it is the default behavior. The Docker image invokes the command-line module KNetCLI using the same commands available in KNet CLI usage:
docker run -it knet [commands]
dotnet /app/MASES.KNetCLI.dll $@
The image can run ZooKeeper™ node and/or Apache Kafka™ broker node using specific values for KNET_DOCKER_RUNNING_MODE:
dotnet /app/MASES.KNetCLI.dll zookeeperstart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/zookeeper.properties
dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/server.properties
The image can run Apache Kafka™ in KRaft mode using specific values for KNET_DOCKER_RUNNING_MODE:
dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/broker.properties
dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/controller.properties
dotnet /app/MASES.KNetCLI.dll kafkastart -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/kraft/server.properties
The image can run both Apache Connect and KNet Connect using specific values for KNET_DOCKER_RUNNING_MODE:
KNET_DOCKER_RUNNING_MODE=knet-connect-standalone: starts, within the container, a standalone KNet Connect instance
dotnet /app/MASES.KNetConnect.dll -s -k -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/connect-standalone.properties /app/config_container/connect-knet-specific.properties
KNET_DOCKER_RUNNING_MODE=connect-standalone: starts, within the container, a standalone Apache Connect instance
dotnet /app/MASES.KNetConnect.dll -s -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/connect-standalone.properties /app/config_container/connect-knet-specific.properties
KNET_DOCKER_RUNNING_MODE=knet-connect-standalone-server: starts, within the container, a ZooKeeper™ node and an Apache Kafka™ broker node like in server, then starts the same command of knet-connect-standalone; this is an autonoumous instance can be used for development or any other possible usage
KNET_DOCKER_RUNNING_MODE=connect-standalone-server: starts, within the container, a ZooKeeper™ node and an Apache Kafka™ broker node like in server, then starts the same command of connect-standalone; this is an autonoumous instance can be used for development or any other possible usage
KNET_DOCKER_RUNNING_MODE=knet-connect-distributed: starts, within the container, a distributed KNet Connect instance
dotnet /app/MASES.KNetConnect.dll -d -k -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/connect-distributed.properties
KNET_DOCKER_RUNNING_MODE=connect-distributed: starts, within the container, a distributed Apache Connect instance
dotnet /app/MASES.KNetConnect.dll -d -Log4JConfiguration /app/config_container/log4j.properties /app/config_container/connect-distributed.properties
All previous commands use a single configuration file for logging; the image can add, or update, configuration variables of log4j.properties using the following pattern for environment variables:
docker pull masesgroup/knet