Spring 云数据流 java DSL:容器属性

Spring Cloud Data Flow java DSL: container properties

我有一个 SCDF 本地部署,我想在其中部署一个基于 docker 的自定义接收器。这个接收器在内部由一个 java 部分组成,它充当 SCDF 和另一位非 java 代码之间的转换包装器。

我需要能够控制

  1. 容器名称
  2. 实例数
  3. 安装到容器的卷
  4. 映射到容器的端口
  5. 传递给非java代码的环境变量

看着 LocalAppDeployerDockerCommandBuilder 看来我应该可以用

之类的东西做 (1) 和 (2)
HashMap<String,String> params = new HashMap<>();
params.put(AppDeployer.COUNT_PROPERTY_KEY,2);
params.put(AppDeployer.GROUP_PROPERTY_KEY,"foo");

Stream.builder(scdf)
                .name("mystream")
                .definition("file|bar")
                .create()
                .deploy(props);

我希望给我 2 个容器:foo-bar-1foo-bar-2 我的问题是如何存档 (3)、(4) 和 (5)?

对于任何未来的搜索:
TL;DR:使用 deployer.<appName>.local.docker.volume-mountsdeployer.<appName>s.local.docker.port-mappings

例如:

Map<String, String> properties = new HashMap<>();
 
properties.put(String.format("deployer.%s.local.docker.volume-mounts", "myApp"),"/tmp/foo:/bar");

properties.put(String.format("deployer.%s.local.docker.port-mappings", "myApp"),"9090:80");

Stream.builder(scdf).name("myStream").definition("time|log").create().deploy(properties)

参见PR。感谢 SCDF 团队的帮助