2017-07-01 4 views
1

ダウンロード後にコードを実行し、事前に作成したドッカー画像をスピンアップするのはベストプラクティスですか?たとえば、RabbitMQを実行しているコンテナをスピンアップするBitnamis RabbitMQイメージを使用します(https://hub.docker.com/r/bitnami/rabbitmq)。あらかじめ作成されたドッカー画像を起動した後にコマンドを実行するベストプラクティス

コンテナがスピンアップしてRabbitMQが実行されたら、追加のRabbitMQ-Pluginをダウンロードして有効にします。私はドッカー-初心者として発生した二つの問題があります:RabbitMQのは多分、20〜30秒

  • を初期化するためにいくつかの時間がかかる

    1. はプラグインが後に有効にする必要があります初期化が

    を終了していると述べました今、私はコンテナをスピンアップ、-itのwget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez 0を30秒待って、手動で

    ドッキングウィンドウの幹部のような端末上でコマンドをexecし& RabbitMQの-プラグインはnewplugin`

    を有効にこれは動作しますが、一度にすべてこれを実行するための推奨方法は何ですか?私は、プロセスの上に自分のDockerfileを使用してみました:

    bitnami/RabbitMQのFROM:最新

    RUNのwgetのRabbitMQの-プラグインが有効-O

    https://pluginlocation.com/newplugin.ez /plugins/folder/newplugin.ez RUN newplugin

    しかし、この時点で、RabbitMQはまだ初期化されていないため、プラグインは失敗します。

    ベスト -act

  • +0

    @OliverCharlesworthそれは間違っています、レイヤーを持つのと同じくらい多くの 'RUN'命令を持つことができます。おそらくこれを 'CMD'と混在させているでしょう。 –

    +0

    @ErikDannenberg - はい、私はそれを混ぜ合わせています:/ –

    答えて

    1

    あなたは--offlineオプションで実行中のブローカーを持たずにプラグインを有効にすることができます。
    だからあなたDockerfileは次のようになります。ところで、それは一つの層に関連したもの(例えば、プラグインのダウンロードと有効化)を行うにはgood practice

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

    です。

    +0

    ありがとうございました@zigarn、オフラインオプションは正確に私が追加する必要があったものでした! – actraiser

    関連する問題