在下载并构建预构建的Docker Image之后运行代码的最佳实践是什么?例如,我使用Bitnamis RabbitMQ图像启动一个运行RabbitMQ的容器(显然):https://hub.docker.com/r/bitnami/rabbitmq
容器旋转起来并运行RabbitMQ之后,我想下载并启用其他RabbitMQ-Plugin。作为Docker-Newbie我遇到两个问题:

  • RabbitMQ需要一些时间来初始化,可能需要20到30秒的时间
  • 初始化完成后,需要启用插件

  • 现在,我旋转容器,等待30秒,然后在终端上手动执行命令,例如

    这行得通,但是有没有推荐的方法可以一次性完成所有这些操作?我尝试在该过程的顶部使用自己的Dockerfile:

    但是此时,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
    

    顺便说一句,它是good practice,用于在一层中执行相关操作(例如,下载并启用插件)。

    关于docker - 启动预构建的Docker镜像后运行命令的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44858601/

    10-16 12:34