如何 运行 Hazelcast 3.11 使用来自 Docker 的组(集群)名称?
How to run Hazelcast 3.11 with a group (cluster) name from Docker?
如何运行 Hazelcast 3.11 版本加上组名?在更高版本中,有一个 HZ_CLUSTERNAME
的环境变量,但在 3.11 中,我在文档中找不到类似的东西。这就是我尝试启动 Hazelcast
的方式
docker run \
-itd \
--network hazelcast-network \
--rm \
-e HZ_CLUSTERNAME=default_groupname \
-p 5701:5701 hazelcast/hazelcast:3.11.4
我也试过这样启动它
docker run \
-itd \
--network hazelcast-network \
--rm \
-v "$(pwd)"/hazelcastconf/:/mnt \
-p 5701:5701 hazelcast/hazelcast:3.11.4 \
java -Dhazelcast.config=/mnt/hazelcast.xml
配置如下
<hazelcast xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd">
<group>
<name>default_groupname</name>
</group>
<network>
<port auto-increment="true" port-count="100">5701</port>
<join>
<multicast enabled="false"></multicast>
</join>
</network>
<map name="sessions">
<time-to-live-seconds>1000</time-to-live-seconds>
</map>
</hazelcast>
有没有办法在 Docker 中启动时正确设置组名?
在 Hazelcast 4.1 中添加了配置覆盖(根据 Release Notes)。
有关其用法的详细信息,请参见 Reference Manual.
我建议升级您的 Hazelcast 版本。
如果您不想升级或不能升级,还有一种方法可以解决 Hazelcast 3 中的问题。11.z
如您所料,方法是将自定义配置文件作为卷映射到容器中。
一种可能的解决方案是将配置文件直接映射到 Hazelcast 安装目录 ("/opt/hazelcast"
)。
docker run ... \
-v "$(pwd)/hazelcastconf/hazelcast.xml:/opt/hazelcast/hazelcast.xml" \
hazelcast/hazelcast:3.11.4
或者您可以在JAVA_OPTS
环境变量中定义自定义路径:
docker run ... \
-v "$(pwd)/hazelcastconf:/mnt" \
-e JAVA_OPTS=-Dhazelcast.config=/mnt/hazelcast.xml \
hazelcast/hazelcast:3.11.4
Docker图像中的启动命令(CMD)随着时间的推移发生了变化,最好不要触摸它。 ;)
如何运行 Hazelcast 3.11 版本加上组名?在更高版本中,有一个 HZ_CLUSTERNAME
的环境变量,但在 3.11 中,我在文档中找不到类似的东西。这就是我尝试启动 Hazelcast
docker run \
-itd \
--network hazelcast-network \
--rm \
-e HZ_CLUSTERNAME=default_groupname \
-p 5701:5701 hazelcast/hazelcast:3.11.4
我也试过这样启动它
docker run \
-itd \
--network hazelcast-network \
--rm \
-v "$(pwd)"/hazelcastconf/:/mnt \
-p 5701:5701 hazelcast/hazelcast:3.11.4 \
java -Dhazelcast.config=/mnt/hazelcast.xml
配置如下
<hazelcast xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd">
<group>
<name>default_groupname</name>
</group>
<network>
<port auto-increment="true" port-count="100">5701</port>
<join>
<multicast enabled="false"></multicast>
</join>
</network>
<map name="sessions">
<time-to-live-seconds>1000</time-to-live-seconds>
</map>
</hazelcast>
有没有办法在 Docker 中启动时正确设置组名?
在 Hazelcast 4.1 中添加了配置覆盖(根据 Release Notes)。 有关其用法的详细信息,请参见 Reference Manual.
我建议升级您的 Hazelcast 版本。 如果您不想升级或不能升级,还有一种方法可以解决 Hazelcast 3 中的问题。11.z
如您所料,方法是将自定义配置文件作为卷映射到容器中。
一种可能的解决方案是将配置文件直接映射到 Hazelcast 安装目录 ("/opt/hazelcast"
)。
docker run ... \
-v "$(pwd)/hazelcastconf/hazelcast.xml:/opt/hazelcast/hazelcast.xml" \
hazelcast/hazelcast:3.11.4
或者您可以在JAVA_OPTS
环境变量中定义自定义路径:
docker run ... \
-v "$(pwd)/hazelcastconf:/mnt" \
-e JAVA_OPTS=-Dhazelcast.config=/mnt/hazelcast.xml \
hazelcast/hazelcast:3.11.4
Docker图像中的启动命令(CMD)随着时间的推移发生了变化,最好不要触摸它。 ;)