summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-11 15:30:52 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-11 15:50:40 +0200
commitbd39027d68e919ee2b757a6a0d793903cb3122e8 (patch)
treea0a6ad5f4d835a7b4cf6f915890bb5ef8edc63c9
parent46b8321bd9fd1933c5b4fae75ffcc5abb72634c7 (diff)
downloadrabbitmq-server-git-bd39027d68e919ee2b757a6a0d793903cb3122e8.tar.gz
Add support for $RABBITMQ_ERLANG_COOKIE env var
It is the equivalent of the content of the Erlang cookie file. Note this variable IS the cookie value, NOT the path to a cookie file. If it is set, it will take precedence over the content of the Erlang cookie file. Fixes docker-library/rabbitmq#508.
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl18
1 files changed, 17 insertions, 1 deletions
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl
index 1fac389775..d6046a3ccd 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl
@@ -1,5 +1,6 @@
-module(rabbit_prelaunch_dist).
+-include_lib("eunit/include/eunit.hrl").
-include_lib("kernel/include/logger.hrl").
-include_lib("rabbit_common/include/logging.hrl").
@@ -33,7 +34,9 @@ setup(#{nodename := Node, nodename_type := NameType} = Context) ->
end,
ok.
-do_setup(#{nodename := Node, nodename_type := NameType}) ->
+do_setup(#{nodename := Node,
+ nodename_type := NameType,
+ var_origins := Origins} = Config) ->
?LOG_DEBUG(
"Starting Erlang distribution",
#{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),
@@ -49,6 +52,19 @@ do_setup(#{nodename := Node, nodename_type := NameType}) ->
{ok, _} = net_kernel:start([Node, NameType]),
ok
end,
+
+ %% Override the Erlang cookie if one was set in the environment.
+ case maps:get(erlang_cookie, Origins, default) of
+ environment ->
+ ?LOG_DEBUG(
+ "Override Erlang cookie using the one set in the environment",
+ #{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),
+ Cookie = maps:get(erlang_cookie, Config),
+ ?assert(is_atom(Cookie)),
+ true = erlang:set_cookie(node(), Cookie);
+ _ ->
+ ok
+ end,
ok.
%% Check whether a node with the same name is already running