編寫配置檔案docker-compose.yml
version: "3.3"
services:
database:
image: debezium/postgres:11
container_name: database
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=mima
zookeeper:
image: debezium/zookeeper:0.10
container_name: zookeeper
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
kafka:
image: debezium/kafka:0.10
container_name: kafka
ports:
- "9092:9092"
depends_on:
- zookeeper
links:
- "zookeeper:zookeeper"
environment:
- BROKER_ID=1
- ZOOKEEPER_CONNECT=zookeeper
- ADVERTISED_HOST_NAME=kafka
connector:
image: debezium/connect:0.10
container_name: connector
expose:
- "8083"
depends_on:
- kafka
- database
links:
- "zookeeper:zookeeper"
- "kafka:kafka"
- "database:database"
environment:
- GROUP_ID=1
- CONFIG_STORAGE_TOPIC=my-connect-configs
- OFFSET_STORAGE_TOPIC=my-connect-offsets
connector-config:
image: curlimages/curl
depends_on:
- connector
links:
- "connector:connector"
command: ["curl -i -X POST -H \"Accept:application/json\" -H \"Content-Type:application/json\" connector:8083/connectors/ -d '{ \"name\": \"connector\", \"config\": { \"connector.class\": \"io.debezium.connector.postgresql.PostgresConnector\", \"tasks.max\": \"1\", \"database.hostname\": \"database\", \"database.port\": \"5432\", \"database.user\": \"postgres\", \"database.password\": \"mima\",\"database.dbnam
e\":\"postgres\", \"database.server.name\": \"postgres\"} }'"]
jobmanager:
image: flink
expose:
- "6123"
ports:
- "8081:8081"
command: jobmanager
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
taskmanager:
image: flink
expose:
- "6121"
- "6122"
depends_on:
- jobmanager
command: taskmanager
links:
- "jobmanager:jobmanager"
- "zookeeper:zookeeper"
- "kafka:kafka"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
将kafka對外開放,友善調試
sed -i 's/ADVERTISED_HOST_NAME=kafka/ADVERTISED_HOST_NAME='$(ip a|grep 192.168|awk '{print $2}'|awk -F / '{print $1}')'/g' docker-compose.yml
其中192.168是根據自己的網絡環境修改
啟動
docker-compose up