Docker 构建 RabbitMQ 集群
2017-12-13 13:08
531 查看
刚开始,关于
从而找到了第三方的
但是这个容器只有
而
于是萌生自己构建一个基于
看了一边原作者写的代码后,直接用
再把
错误之一:找不到https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm。
在代码里找到https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm改成https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm。
错误之二:提示
搜索后增加缓存清除和重建命令后解决
错误之三:http://xxxxxxxxx/centos/7/updates/x86_64/repodata/dd6db8b290ec639a13dceebf2754de1d31392e18acad98e32e4ef5ad3a7e41da-primary.sqlite.bz2: [Errno 14] HTTP Error 404 。
这种问题,刚开始我以为和错误之二差不多,但折腾来折腾去总是搞不定。
感觉无解,因为搜索不到任何解决方案,后来用香港的服务器就没有出现过这样的错误了。
搜索到一个同样错误的CentOS 7 で「XXXXXX-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found」エラー発生,他却通过缓存清除和更新解决问题了
在
于是将https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm替换成https://github.com/rabbitmq/erlang-rpm/releases/download/v20.1.7/erlang-20.1.7-1.el7.centos.x86_64.rpm
我看RabbitMQ官方的Docker构建只是简单的一句
构建成功了
访问登录一看,不对劲,明明构建了三个集群,为何只显示两个?
看了一下
总算是完全构建成功了
然后推送到
参考:https://www.cnblogs.com/itxdm/p/5876597.html
http://blog.csdn.net/u011058700/article/details/78708767
RabbitMQ集群的搭建,我找到了这篇文章:Docker 安装 RabbitMQ 集群
从而找到了第三方的
RabbitMQ集群容器 rabbitmq-server
但是这个容器只有
3.6.10版本,连
3.6.14版本都没有,看样子已经很久没更新推送了。
而
RabbitMQ刚发布
3.7.0版本,但还没来得及在
Docker Hub推送
3.7.0版本的容器。
于是萌生自己构建一个基于
3.7.0版本的
Docker容器的想法。
Fork了bijukunjummen/docker-rabbitmq-cluster的库到自己的
Github库.
Clone自己的VAllens/docker-rabbitmq-cluster库到本地。
看了一边原作者写的代码后,直接用
Notepad++批量替换
3.6.10为
3.7.0,然后把原作者信息改成自己的。
再把
RabbitMQ安装包的下载地址更新为RabbitMQ 3.7.0
以下是我更改代码后的差异截图
第一次构建(国内本地开发机):
在自己本地的Docker环境上执行
build-images.sh开始构建,各种报错。
错误之一:找不到https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm。
在代码里找到https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm改成https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm。
第二次构建(国内本地开发机):
又是各种报错。错误之二:提示
/var/xxxxxx/cache/xxxxxxxxx.rpm找不到。
搜索后增加缓存清除和重建命令后解决
RUN yum clean all && yum clean metadata && yum clean dbcache && yum makecache && yum -y update
RUN rpm --rebuilddb
第三次构建(国内本地开发机):
还是各种报错。错误之三:http://xxxxxxxxx/centos/7/updates/x86_64/repodata/dd6db8b290ec639a13dceebf2754de1d31392e18acad98e32e4ef5ad3a7e41da-primary.sqlite.bz2: [Errno 14] HTTP Error 404 。
这种问题,刚开始我以为和错误之二差不多,但折腾来折腾去总是搞不定。
感觉无解,因为搜索不到任何解决方案,后来用香港的服务器就没有出现过这样的错误了。
搜索到一个同样错误的CentOS 7 で「XXXXXX-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found」エラー発生,他却通过缓存清除和更新解决问题了
第四次构建(香港服务器):
错误之四:rabbitmq-server依赖
erlang 19.3以上版本,而
erlang环境是
R16B03版本。
在
RabbitMQ查文档发现,
RabbitMQ 3.6.14以下版本使用
erlang R16B03版本,从
RabbitMQ 3.6.15开始使用
erlang 19.3以上版本。
于是将https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm替换成https://github.com/rabbitmq/erlang-rpm/releases/download/v20.1.7/erlang-20.1.7-1.el7.centos.x86_64.rpm
第五次构建(香港服务器):
错误之五:The command '/bin/sh -c /usr/sbin/rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_stomp rabbitmq_management rabbitmq_management_agent rabbitmq_management_visualiser rabbitmq_federation rabbitmq_federation_management sockjs<<<'y'' returned a non-zero code: 70。
我看RabbitMQ官方的Docker构建只是简单的一句
rabbitmq-plugins enable --offline rabbitmq_management,于是改成和官方一样,这是开启Web界面管理插件的意思。
构建成功了
访问登录一看,不对劲,明明构建了三个集群,为何只显示两个?
看了一下
cluster/docker-compose.yml,发现
rabbit3节点的
ports少了一个
web端口配置,加上之后重新构建
总算是完全构建成功了
然后推送到
Docker Hub.
$ docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: vallen Password: Login Succeeded 08:56:31 0 root@HKWEBXX01:/opt/rabbitmq/docker-rabbitmq-cluster/cluster (master) $ docker push vallen/rabbitmq-base:3.7.0 The push refers to a repository [docker.io/vallen/rabbitmq-base] 49c4dd0218bf: Pushed e05c6ae20e34: Pushed cb3d60bc2852: Pushed 0bcda199b0b4: Pushed 6b5da83a0b8c: Pushed 45e10453c709: Pushed a0d45dbc6f9c: Pushed 877a51e31640: Pushed 129b697f70e9: Mounted from library/centos 3.7.0: digest: sha256:01c94e60909d92fc09feb0485c8098bf7908122e0b8af511515e95f76340dbd6 size: 2212 09:37:04 0 root@HKWEBXX01:/opt/rabbitmq/docker-rabbitmq-cluster/cluster (master) $ docker push vallen/rabbitmq-server:3.7.0 The push refers to a repository [docker.io/vallen/rabbitmq-server] b3d821cdc3c3: Pushed c233e5b35237: Pushed 1c6005cb5509: Pushed 616c29009bde: Pushed a32721abfea1: Pushed 1548cde54861: Pushed 7ef7d7cbddf6: Pushed 49c4dd0218bf: Mounted from vallen/rabbitmq-base e05c6ae20e34: Mounted from vallen/rabbitmq-base cb3d60bc2852: Mounted from vallen/rabbitmq-base 0bcda199b0b4: Mounted from vallen/rabbitmq-base 6b5da83a0b8c: Mounted from vallen/rabbitmq-base 45e10453c709: Mounted from vallen/rabbitmq-base a0d45dbc6f9c: Mounted from vallen/rabbitmq-base 877a51e31640: Mounted from vallen/rabbitmq-base 129b697f70e9: Mounted from vallen/rabbitmq-base 3.7.0: digest: sha256:d67e1f67c0880f91ce42fa3f429a51c3886f2dff89c14b9c45815c692d6cd73d size: 3661
参考:https://www.cnblogs.com/itxdm/p/5876597.html
http://blog.csdn.net/u011058700/article/details/78708767
相关文章推荐
- 二、基于kubernetes构建Docker集群环境实战
- docker部署rabbitmq集群的实现方法
- 使用Docker swarm构建wordpress集群 推荐
- 基于Kubernetes构建Docker集群管理详解
- Docker构建Redis集群
- RabbitMQ:Docker环境下搭建rabbitmq集群
- Docker构建高可用Eureka集群
- 实战案例:构建docker容器集群 (解决方案一:使用自定义网桥连接跨主机容器)
- Docker部署Rabbitmq集群及实现定时消息
- Docker构建ELK Docker集群日志收集系统
- RabbitMQ集群 Docker一键部署
- 基于kubernetes构建Docker集群管理详解
- 使用Docker如何构建Flink集群?
- from: 基于Kubernetes构建Docker集群管理详解
- 基于Kubernetes构建Docker集群管理详解
- docker 构建spark集群
- 使用Docker构建持续集成与自动部署的Docker集群
- 基于kubernetes构建Docker集群管理详解-转
- 用 Docker 构建分布式 Redis 集群
- 使用Docker构建redis集群