【问题标题】:How to bind the directory to container while using camel?使用骆驼时如何将目录绑定到容器?
【发布时间】:2022-11-10 21:06:58
【问题描述】:

使用camel apache时是否可以将目录绑定到容器?我正在尝试:

from("kafka:xxx-xxx?brokers=localhost:9092")
 .setProperty("xxx", simple(procVers()))
    .setHeader(DockerConstants.DOCKER_REPOSITORY, simple("xxx"))
    .setHeader(DockerConstants.DOCKER_TAG, simple("xxx")) 
    .setHeader(DockerConstants.DOCKER_IMAGE_ID, simple("xxx"))
    .setHeader(DockerConstants.DOCKER_IMAGE, simple("xxx:xxx"))
    .setHeader(DockerConstants.DOCKER_NAME, exchangeProperty("xxx"))
    .setHeader(DockerConstants.DOCKER_ENV, () -> new String []{
                        "MODE=xxx", "PARSER_CLIENT=xxx",
                        "PATHS=/home/xxx/xxx"  })
    .setHeader(DockerConstants.DOCKER_BINDS,simple("/xxx/:/xxx/"))
    .setHeader(DockerConstants.DOCKER_CONTAINER_ID, simple("${body.id}"))
    .to("docker:containerstart?host=/var/run/docker.sock")
    .log("container started")
    .setHeader(DockerConstants.DOCKER_CONTAINER_ID, simple("${body.id}"))
    .to("docker:containerwait?host=/var/run/docker.sock?")
    .log("container end");

但不起作用,运行时没有错误。

【问题讨论】:

标签: java docker apache-kafka apache-camel


【解决方案1】:

如果有人不想等到下一个骆驼发布,我找到了解决方法。 您必须在 DOCKER_HOST_CONFIG 中添加 HostConfig 实例。 例子:

from("kafka:xxx-xxx?brokers=localhost:9092")
 .setProperty("xxx", simple(procVers()))
    .setHeader(DockerConstants.DOCKER_REPOSITORY, simple("xxx"))
    .setHeader(DockerConstants.DOCKER_TAG, simple("xxx")) 
    .setHeader(DockerConstants.DOCKER_IMAGE_ID, simple("xxx"))
    .setHeader(DockerConstants.DOCKER_IMAGE, simple("xxx:xxx"))
    .setHeader(DockerConstants.DOCKER_NAME, exchangeProperty("xxx"))
    .setHeader(DockerConstants.DOCKER_ENV, () -> new String []{
                        "MODE=xxx", "PARSER_CLIENT=xxx",
                        "PATHS=/home/xxx/xxx"  })
    .setHeader(DockerConstants.DOCKER_BINDS,simple("/xxx/:/xxx/"))
    .setHeader(DockerConstants.DOCKER_CONTAINER_ID, simple("${body.id}"))
    .setHeader(DockerConstants.DOCKER_HOST_CONFIG, () -> 
                  HostConfig.newHostConfig().withBinds(new Bind(this.mount, new 
                  Volume(this.mount)))
                        .withMemory(2000000000L)
                        .withMemorySwap(20000000000L)
                        )
    .to("docker:containerstart?host=/var/run/docker.sock")
    .log("container started")
    .setHeader(DockerConstants.DOCKER_CONTAINER_ID, simple("${body.id}"))
    .to("docker:containerwait?host=/var/run/docker.sock?")
    .log("container end");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多