【问题标题】:Adding wiremock extension in docker-compose在 docker-compose 中添加wiremock扩展
【发布时间】:2018-12-07 06:49:51
【问题描述】:

我在我的项目中使用 docker-compose 并旋转rodolpheche/wiremock 图像,如下所示

  wiremock:
image: rodolpheche/wiremock
ports:
  - "xxxx:xxxxx"
volumes:
  - ./src/wiremock:/home/wiremock

现在我想在上面的wiremock 图像中添加一些随机体转换器扩展。 扩展路径为 = org.m.BodyRandomizer

我已经看到关于添加扩展的 docker 页面 (https://hub.docker.com/r/rodolpheche/wiremock/),但我没有得到太多。

【问题讨论】:

  • 我注意到您将答案标记为已接受,然后撤消它,这是什么问题?也许我可以提供一个替代建议:)
  • 嗨,斯文。实际上,我的扩展在我们的一个内部库中,我们正在许多其他存储库中使用。我想知道是否有任何方法可以在 lib 中添加这个扩展,而无需在每个 repo 中定义它。
  • 您的意思是,您希望每次像问题中描述的那样启动此图像时,它都会自动包含此扩展名?那么自定义 docker 文件?
  • 我担心的是我是否需要将我的扩展文件,即 (org.m.BodyRandomizer.scala)(在 lib 中)移动到每个存储库到我所在的 src/wiremock/etensions使用 docker 线模。或者有没有办法我可以在 docker-compose 文件中提供我的扩展类路径,以便它可以运行。
  • 您可以将它放在 docker 主机上的任何位置,例如 ~/extensions 并将该卷绑定到 /var/wiremock/extensions,它不必在您的项目目录中。这将允许您将此目录用于要在 docker 中容器化的每个 repo

标签: docker docker-compose wiremock


【解决方案1】:

您需要向/var/wiremock/extensions 添加一个额外的卷挂载,将包含您要添加的扩展名的本地文件夹绑定到该文件夹​​。除此之外,您还必须在 compose 中指定 command 选项才能执行调用 --extensions com.opentable.extension.BodyTransformer

这将导致如下结果:

wiremock:
    image: rodolpheche/wiremock
    ports:
      - "xxxx:xxxxx"
    command: --extensions com.opentable.extension.BodyTransformer
    volumes:
      - ./src/wiremock:/home/wiremock
      - ./extension_dir:/var/wiremock/extensions

希望对你有帮助

【讨论】: