Docker安装rabbitmq遇《阿里云标准-Docker安全基线检查问题》

《阿里云标准-Docker安全基线检查问题》 要求使用–read-only以允许将容器的根文件系统挂载为只读。
本以为把rabbitmq文件目录: /etc/rabbitmq、/var/lib/rabbitmq、/var/log/rabbitmq挂载出来就ok了。结果对我来说还是个坑。以下是我本地docker启动命令:

docker run -d --name rabbitmq3.7.7-delayed-message --read-only --memory 512m -p 5672:5672 -p 15672:15672  -v /Users/wink/data/rabbitmq/etc/:/etc/rabbitmq -v /Users/wink/data/rabbitmq/lib/:/var/lib/rabbitmq -v /Users/wink/data/rabbitmq/log/:/var/log/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost  -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password e45ab5b63038

很好!顺利启动,以为没事了。但是我项目中用到了延迟消息的插件,理想当然的准备把延迟消息插件copy到rabbitmq插件目录中就可以了,因启动命令中的–read-only 导致不可以写入。

然后看了dockerhub上rabbitmq官方镜像说明(DockerHub_Rabbitmq),其中有这么一段
在这里插入图片描述
很好!那么思路来了。
我们在一个空文件下创建一个Dockerfile文件 因我用到了延迟消息,所以和Dockerfile同目录中还放了延迟消息的插件。
因此我对官方给出的的Dockerfile做了一些改动。如下:

FROM rabbitmq:3.7.7-management
MAINTAINER  zuzjiqi
COPY  rabbitmq_delayed_message_exchange-20171201-3.7.x.ez   /plugins
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

注意插件版本需与rabbitmq版本对其。
然后我们在Dockerfile目录下执行:

docker build -t rabbitmq-delayed-message .

执行成功后可以看到新增了一个镜像
在这里插入图片描述
这里我们先别着急启动!还有一步。
还需要在对应的:/etc/rabbitmq挂载目录中创建一个enabled_plugins文件
我这边就是在 /Users/wink/data/rabbitmq/etc/目录中创建enabled_plugins文件
内容为:[rabbitmq_delayed_message_exchange,rabbitmq_management].
然后我们再去通过上面启动命令启动
启动很顺利 我们再看下日志最后有这么一段在这里插入图片描述我们看到了rabbitmq_delayed_message_exchange插件说明插件已经启动了。
启动项目调试下ok没有问题。解决!
这里我还看到了如下一篇文章
Docker中安装rabbitmq并启用插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值