启动预构build的Docker镜像后运行命令的最佳实践

下载后运行代码并旋转预构build的Docker镜像最佳做法是什么? 例如,我使用Bitnamis RabbitMQ镜像,它可以运行一个运行RabbitMQ的容器(显然): https ://hub.docker.com/r/bitnami/rabbitmq

容器启动后,RabbitMQ正在运行,我想下载并启用一个额外的RabbitMQ插件。 作为Docker-Newbie,我遇到了两个问题:

  1. RabbitMQ需要一些时间来初始化,也许20-30秒
  2. 所述初始化完成后,需要启用插件

现在,我启动容器,等待30秒,然后在terminal上手动执行命令

docker exec -it wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez && rabbitmq-plugins enable newplugin`

这是有效的,但是有一个推荐的方法去做这一切吗? 我尝试使用我自己的Dockerfile的过程之上:

FROM bitnami / rabbitmq:最新

运行wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez

运行rabbitmq-plugins启用newplugin

但在这一点上,RabbitMQ还没有初始化,所以使插件失败。

最好的

您可以启用插件,而无需使用--offline选项运行代理。
所以你的Dockerfile可以是:

 FROM bitnami/rabbitmq:latest RUN curl -o /opt/bitnami/rabbitmq/plugins/newplugin.ez \ https://pluginlocation.com/newplugin.ez \ && rabbitmq-plugins enable --offline newplugin 

顺便说一句,这是一个很好的做法 ,在一个层面做相关的事情(例如下载和启用一个插件)。