Canal v1.1.4 基于 macOS docker本地开发测试搭建

环境

macOS Docker canal canal-admin

搭建样例.gif

最近在看MySQL Binlog相关内容,阿里开源Canal更新到1.1.4出了一个canal-admin 来管理canal-server、canal-instance。由于涉及到的组建较多,选择通过docker在本地搭建一套。最终出来的效果就是上图。

涉及Docker镜像

  • canal/canal-server:v1.1.4
  • canal/canal-admin:v1.1.4
  • mysql:5.7
  • ches/kafka:latest
  • zookeeper:3.4
搭建结构.png

大致思路:每个实线块都是一个docker容器,所有组建容器都通过--network=container:dev 将网络绑定到dev容器上。通过dev容器暴露指定端口(如:暴露canal-admin默认8089端口)给本地宿主机访问。

其中canal-admin和canal-server都重新打了新的镜像。

canal-admin: 本身是依赖MySQL服务,在启动默认容器时,会同时启动一个MySQL实例。同时账号和默认canal-server的账号一致。

FROM canal/canal-admin:v1.1.4

# Delete self-mysql
RUN sed -i -e 's/^[ ]*start_mysql$/:/g' /home/admin/app.sh

RUN sed -i -e 's/^stop_mysql$//g' /home/admin/app.sh

# 更改自定canal_manager数据库账号和canal-server默认账号做区分
RUN sed -i -e 's/username: canal$/username: canal_admin/g' /home/admin/canal-admin/conf/application.yml

RUN sed -i -e 's/password: canal$/password: canal_admin/g' /home/admin/canal-admin/conf/application.yml

关闭默认mysql启动(所以需要将canal-admin依赖的数据库迁移到dev-mysql容器中来),调整默认连接账号配置(与canal-server服务做区分)。

FROM canal/canal-server:v1.1.4

# 更改默认serverMode=kafka
RUN sed -i -e "s/canal.serverMode = tcp/canal.serverMode = kafka/" /home/admin/canal-server/conf/canal.properties

# 更改MQserver为 kafka地址
RUN sed -i -e "s/canal.mq.servers = 127.0.0.1:6667/canal.mq.servers = 127.0.0.1:9092/" /home/admin/canal-server/conf/canal.properties

调整canal-server参数serverMode配置为Kafka。

你可能感兴趣的:(Canal v1.1.4 基于 macOS docker本地开发测试搭建)