如何通过 docker-compose.yml 将配置参数传递给 Flink Docker 镜像?



我想将下面的配置参数传递给 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/confDocker 容器中,这是 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"

相关内容

  • 没有找到相关文章