我想将以下配置参数传递给 flink docker 镜像的 docker-compose.yml。
state.checkpoints.dir: s3://.../flink/checkpoint
state.savepoints.dir: s3://.../flink/savepoint
s3.access-key: ...
s3.secret-key: ...
jobmanager.execution.failover-strategy: region
有人可以帮助我如何做吗?
docker 镜像 - flink:1.9.0
最佳答案
将配置文件夹挂载到容器中
您可以创建一个卷,将主机系统中的文件夹挂载到 Docker 容器中 Flink 配置的位置。
Flink Operations Playground这样做是为了将自定义配置传递给 Flink Docker 镜像。
JobManager 在 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 从中获取其配置的位置。
通过环境变量传递参数
另一种方法是通过环境变量传递配置参数。
docker-entrypoint.sh
用于启动 Flink 容器的脚本似乎将 FLINK_PROPERTIES
变量的内容追加到配置文件中。不过,我还没有使用过这种方法。
关于docker - 如何通过 docker-compose.yml 将配置参数传递给 Flink Docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58133004/