Files
compose-anything/src/flink/docker-compose.yaml
2025-11-10 19:55:44 +08:00

79 lines
2.3 KiB
YAML

x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 100m
max-file: "3"
services:
jobmanager:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}flink:${FLINK_VERSION:-1.20.0-scala_2.12-java11}
hostname: jobmanager
command: jobmanager
environment:
TZ: ${TZ:-UTC}
FLINK_PROPERTIES: |
jobmanager.rpc.address: jobmanager
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1600m
taskmanager.numberOfTaskSlots: 2
volumes:
- flink_data:/opt/flink/data
# Custom Flink jobs
# - ./jobs:/opt/flink/jobs
ports:
- "${FLINK_JOBMANAGER_RPC_PORT_OVERRIDE:-6123}:6123"
- "${FLINK_JOBMANAGER_UI_PORT_OVERRIDE:-8081}:8081"
deploy:
resources:
limits:
cpus: ${FLINK_JOBMANAGER_CPU_LIMIT:-2.0}
memory: ${FLINK_JOBMANAGER_MEMORY_LIMIT:-2G}
reservations:
cpus: ${FLINK_JOBMANAGER_CPU_RESERVATION:-0.5}
memory: ${FLINK_JOBMANAGER_MEMORY_RESERVATION:-1G}
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8081 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
taskmanager:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}flink:${FLINK_VERSION:-1.20.0-scala_2.12-java11}
command: taskmanager
environment:
TZ: ${TZ:-UTC}
FLINK_PROPERTIES: |
jobmanager.rpc.address: jobmanager
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1600m
taskmanager.numberOfTaskSlots: 2
volumes:
- flink_data:/opt/flink/data
# Custom Flink jobs
# - ./jobs:/opt/flink/jobs
depends_on:
jobmanager:
condition: service_healthy
deploy:
resources:
limits:
cpus: ${FLINK_TASKMANAGER_CPU_LIMIT:-2.0}
memory: ${FLINK_TASKMANAGER_MEMORY_LIMIT:-2G}
reservations:
cpus: ${FLINK_TASKMANAGER_CPU_RESERVATION:-0.5}
memory: ${FLINK_TASKMANAGER_MEMORY_RESERVATION:-1G}
healthcheck:
test: ["CMD-SHELL", "ps aux | grep -v grep | grep -q taskmanager || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
volumes:
flink_data: