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

标签 docker docker-compose yaml apache-flink

我想将以下配置参数传递给 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/

相关文章:

java - Elasticsearch (Java) 禁用日志记录

node.js - Dockerized Node js 应用程序无法启动

json - Kubernetes:从j2模板动态创建配置json文件

docker - 如何在不使用 docker 命令的情况下使用设备映射器将 docker 容器移动到另一台机器

node.js - Docker Compose Up 构建 Node-Sass 错误

azure - 如何在 Azure DevOps/GitHub 中设置 PR 验证?

docker - 如何在使用 docker 时为多个项目共享(公开)端口 80

docker - 如何通过 docker-compose 将变量传递给 Dockerfile

mysql - 在 docker-compose 启动时创建数据库

azure - 在 Docker 文件中挂载 Azure Blob 存储