【发布时间】:2023-03-03 00:58:01
【问题描述】:
我使用带有 ibm mq 映像的 TestContainers。通过配置我设置了主机、端口、用户=应用程序、默认密码、管理器= QM1。我还有更多自定义队列,除了由容器创建的默认 DEV.QUEUE.1 - 3 之外,我还得启动我的队列。我发现像 withCommand 这样的运算符,接受字符串参数,并尝试将其设置为
.withCommand("sh","-c","runmqsc QM1 | define qlocal(LQ1) | end")https://www.ibm.com/docs/en/ibm-mq/7.5?topic=75-creating-queue-called-lq1
不幸的是,它似乎不是从它开始的。
我的完整代码相关:
@Container
static GenericContainer<?> mqContainer = new GenericContainer<>(DockerImageName.parse("ibmcom/mq"))
.withEnv("LICENSE", "accept")
.withEnv("MQ_QMGR_NAME", "QM1")
/* .withCommand("sh","-c","runmqsc")*/
.withExposedPorts(1414)
.withStartupTimeout(Duration.of(1, ChronoUnit.HALF_DAYS))
.withLogConsumer(new Slf4jLogConsumer(log));
【问题讨论】:
-
我想我应该在启动时输入有效命令来设置自定义队列并授予应用程序用户所需的权限。
-
这让你在启动时运行 MQSC 命令:stackoverflow.com/questions/70480034/…
-
你的命令应该更像这样
.withCommand("sh","-c","echo 'define qlocal(LQ1)' | runmqsc QM1") -
命令不起作用,容器永远挂起。为配置队列编写额外的脚本似乎是非常不方便的配置方式。
标签: ibm-mq testcontainers