我正在通过 Docker Desktop 使用
latest
官方 ActiveMQ Classic 6 Docker 映像。但是,授权不适用于默认凭据(即 admin
/admin
)。我收到 401 未经授权的错误。有谁知道为什么吗?
我对 ActiveMQ Classic 5.18.3 进行了相同的尝试,并成功使用默认凭据进行授权。
授权成功。
最好的解决方案是使用正确的
ACTIVEMQ_OPTS
。这是 docker compose
的示例:
version: '3.8'
services:
amq:
image: apache/activemq-classic:6.0.1
environment:
- ACTIVEMQ_OPTS= -Djetty.host=0.0.0.0 -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apache-activemq/conf/login.config
ports:
- "8161:8161"
- "61616:61616"
tl;博士;
看起来,由于 docker 默认情况下无法访问 Web 界面,他们添加了
ACTIVEMQ_OPTS= -Djetty.host=0.0.0.0
作为 docker 中的默认环境变量。这可以防止将 ACTIVEMQ_OPTS
设置为与空相同的值(就像通常的本地安装一样)。
if [ -z "$ACTIVEMQ_OPTS" ] ; then
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
fi