我想将下面的配置参数传递给 docker-compose.yml 用于 flink docker 镜像。
state.checkpoints.dir: s3://.../flink/checkpoint
state.savepoints.dir: s3://.../flink/savepoint
s3.access-key: ...
s3.secret-key: ...
jobmanager.execution.failover-strategy: region
有人可以帮我怎么做吗?
码头工人镜像 - Flink:1.9.0
将配置文件夹挂载到容器中
您可以创建一个卷,将文件夹从主机系统挂载到 Docker 容器中 Flink 配置的位置。
Flink Operations Playground 这样做是为了将自定义配置传递给 Flink Docker 镜像。
docker-compose.yaml
中作业管理器的条目可能如下所示:
jobmanager:
image: flink:1.9-scala_2.11
command: "jobmanager.sh start-foreground"
ports:
- 8081:8081
volumes:
- ./conf:/opt/flink/conf
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
它会挂载./conf
文件夹(应该在docker-compose.yaml
文件旁边(以/opt/flink/conf
Docker 容器中,这是 FLink 从中获取其配置的位置。
通过环境变量传递参数
另一种方法是通过环境变量传递配置参数。
用于启动 Flink 容器的docker-entrypoint.sh
脚本似乎将FLINK_PROPERTIES
变量的内容附加到配置文件中。但是,我还没有使用这种方法。
如果有人正在寻找答案,请在FLINK_PROPERTIES的整个条目周围添加双引号以转义冒号:
jobmanager:
image: flink:1.9-scala_2.11
command: "jobmanager.sh start-foreground"
ports:
- 8081:8081
volumes:
- ./conf:/opt/flink/conf
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
- "FLINK_PROPERTIES=a: b nc: d"