我想将以下配置参数传递给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
有人可以帮我吗?
docker image-flink:1.9.0
答案 0 :(得分:1)
您可以创建一个卷,该卷将主机系统中的文件夹安装到Docker容器中Flink配置的位置。
Flink Operations Playground这样做是为了将自定义配置传递给Flink Docker映像。
docker-compose.yaml
中JobManager的条目可能如下所示:
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
旁边)安装到Docker容器中的/opt/flink/conf
上,该容器是FLink进行配置的位置。>
另一种选择是通过环境变量传递配置参数。
用于启动Flink容器的docker-entrypoint.sh
脚本似乎将FLINK_PROPERTIES
变量的内容附加到配置文件中。但是,我还没有使用这种方法。
答案 1 :(得分:0)
如果有人在寻找答案,请在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"