Монтирование папки конфигурации в контейнер
Вы можете создать том, который монтирует папку из хост-системы в расположение конфигурации Flink в контейнере Docker.
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
в файл конфигурации.Тем не менее, я еще не использовал этот подход.