是否可以使用属性文件而不是环境变量启动/配置汇合docker映像?

是否可以使用属性文件而不是环境变量启动/配置汇合docker映像?,docker,apache-kafka,apache-zookeeper,confluent-platform,Docker,Apache Kafka,Apache Zookeeper,Confluent Platform,声明cp zookeeper和cp kafka图像是通过环境变量配置的 ZooKeeper图像使用以ZooKeeper_u为前缀的变量,变量的表达方式与ZooKeeper.properties文件中显示的完全相同。例如,要设置clientPort、tickTime和syncLimit,请运行以下命令: 我更愿意提供一个zookeeper.properties(server.properties for kafka),而不是指定zookeeper_*(kafka_*)环境变量。这有可能吗 在我当前

声明cp zookeeper和cp kafka图像是通过环境变量配置的

ZooKeeper图像使用以ZooKeeper_u为前缀的变量,变量的表达方式与ZooKeeper.properties文件中显示的完全相同。例如,要设置clientPort、tickTime和syncLimit,请运行以下命令:

我更愿意提供一个
zookeeper.properties
(server.properties for kafka),而不是指定zookeeper_*(kafka_*)环境变量。这有可能吗


在我当前使用“非汇合”kafka的设置中,我只需挂载一个包含/etc/kafka上属性的配置卷,然后用它启动kafka,但是看看,我可以看出这是行不通的,因为为了在容器中生成属性,有一些特殊的模板魔术正在进行。

您可以通过在docker命令中使用
--env file
开关,而不是在命令行中键入每个环境变量来实现您所描述的

例如,如果您首先将所需的属性存储到一个文件中,那么假设
kafka.properties

KAFKA_ZOOKEEPER_CONNECT=localhost:32181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
然后,您可以通过运行以下命令启动kafka容器:

docker run-d--net=host--name=kafka--env文件。/kafka.properties confluentinc/cp kafka:3.3.1


但是,属性键的名称应该与每个docker映像所期望的内容相匹配(正如您所注意到的,当每个docker映像运行时,这些内容会呈现给相应的服务属性)

通过在docker命令中使用
--env file
开关,而不是在命令行中键入每个环境变量,您可以实现所描述的功能

例如,如果您首先将所需的属性存储到一个文件中,那么假设
kafka.properties

KAFKA_ZOOKEEPER_CONNECT=localhost:32181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
然后,您可以通过运行以下命令启动kafka容器:

docker run-d--net=host--name=kafka--env文件。/kafka.properties confluentinc/cp kafka:3.3.1

但是,属性键的名称应该与每个docker映像所期望的内容相匹配(正如您所注意到的,当每个docker映像运行时,这些内容会呈现给相应的服务属性)