docker docker-compose.yml 部署canal 同步rabbitmq
时间: 2023-07-19 14:49:39 浏览: 201
可以使用以下的 docker-compose.yml 文件来部署 canal 同步 rabbitmq:
```
version: '3'
services:
canal:
image: canal/canal-server:v1.1.4
ports:
- "11111:11111"
environment:
- canal.auto.scan=false
- canal.instance.master.address=127.0.0.1:3306
- canal.instance.dbUsername=canal
- canal.instance.dbPassword=canal
- canal.instance.connectionCharset=UTF-8
- canal.rabbitmq.host=rabbitmq
- canal.rabbitmq.port=5672
- canal.rabbitmq.username=guest
- canal.rabbitmq.password=guest
- canal.rabbitmq.virtualHost=/
- canal.rabbitmq.exchangeName=canal.exchange
- canal.rabbitmq.queueName=canal.queue
- canal.rabbitmq.routingKey=canal.routing.key
depends_on:
- rabbitmq
networks:
- canal-net
rabbitmq:
image: rabbitmq:3.8.9-management
ports:
- "5672:5672"
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
networks:
- canal-net
networks:
canal-net:
```
在该文件中,定义了两个服务 `canal` 和 `rabbitmq`。其中,`canal` 服务使用了 `canal-server` 镜像,暴露了 11111 端口,设置了一系列环境变量,包括连接 MySQL 数据库的相关信息和连接 RabbitMQ 的相关信息。`rabbitmq` 服务使用了 `rabbitmq:3.8.9-management` 镜像,暴露了 5672 和 15672 端口,设置了默认的用户名和密码。
需要注意的是,`canal` 服务依赖于 `rabbitmq` 服务,所以需要在 `canal` 服务的 `depends_on` 中添加 `rabbitmq`。
最后,在文件最后定义了一个网络 `canal-net`,将 `canal` 和 `rabbitmq` 服务加入到该网络中,以便它们之间可以互相访问。
在部署时,只需要在包含该文件的目录下运行以下命令即可启动服务:
```
docker-compose up -d
```
其中,`-d` 参数表示在后台运行服务。
阅读全文