如何为测试容器的 RabbitMQContainer 启用 RabbitMQ 管理 api
how to enable RabbitMQ management api for RabbitMQContainer of testcontainers
我正在使用 RabbitMQContainer 做集成测试,我有以下设置:
@Container
final static RabbitMQContainer rabbitMQContainer = new RabbitMQContainer(DockerImageName.parse(RABBITMQ_IMAGE))
.withExposedPorts(5672, 15672)
.withCommand("rabbitmq-plugins enable --offline rabbitmq_management")
.withUser(RABBITMQ_USERNAME, RABBITMQ_PASSWORD, ImmutableSet.of("administrator"))
.withPermission("/", RABBITMQ_USERNAME, ".*", ".*", ".*");
但是容器启动失败,如果我去掉withCommand,它可以启动但是我无法访问管理API。
关于如何设置带有管理的 RabbitMQContainer 的任何建议 api?
使用 withCommand
将覆盖 Docker 图像的默认命令,因此会破坏与 RabbitMQContainer
实现的启动合同。
我不是 RabbitMQ 专家,但是你可以使用这样的配置并通过插件启用 rabbitmq_management
setter?
@Container
final static RabbitMQContainer rabbitMQContainer = new RabbitMQContainer(DockerImageName.parse(RABBITMQ_IMAGE))
.withExposedPorts(5672, 15672)
.withPluginsEnabled("rabbitmq_management")
.withUser(RABBITMQ_USERNAME, RABBITMQ_PASSWORD, ImmutableSet.of("administrator"))
.withPermission("/", RABBITMQ_USERNAME, ".*", ".*", ".*");
我正在使用 RabbitMQContainer 做集成测试,我有以下设置:
@Container
final static RabbitMQContainer rabbitMQContainer = new RabbitMQContainer(DockerImageName.parse(RABBITMQ_IMAGE))
.withExposedPorts(5672, 15672)
.withCommand("rabbitmq-plugins enable --offline rabbitmq_management")
.withUser(RABBITMQ_USERNAME, RABBITMQ_PASSWORD, ImmutableSet.of("administrator"))
.withPermission("/", RABBITMQ_USERNAME, ".*", ".*", ".*");
但是容器启动失败,如果我去掉withCommand,它可以启动但是我无法访问管理API。 关于如何设置带有管理的 RabbitMQContainer 的任何建议 api?
使用 withCommand
将覆盖 Docker 图像的默认命令,因此会破坏与 RabbitMQContainer
实现的启动合同。
我不是 RabbitMQ 专家,但是你可以使用这样的配置并通过插件启用 rabbitmq_management
setter?
@Container
final static RabbitMQContainer rabbitMQContainer = new RabbitMQContainer(DockerImageName.parse(RABBITMQ_IMAGE))
.withExposedPorts(5672, 15672)
.withPluginsEnabled("rabbitmq_management")
.withUser(RABBITMQ_USERNAME, RABBITMQ_PASSWORD, ImmutableSet.of("administrator"))
.withPermission("/", RABBITMQ_USERNAME, ".*", ".*", ".*");