[解決済み] RabbitMQ Dockerコンテナの起動時に初期ユーザーを追加する方法は?
2023-04-19 07:38:55
質問
現在、私は以下のサイトからデフォルトのRabbitMQイメージを使ってRabbitMQ Dockerコンテナを起動しています。 DockerHub . 以下のコマンドを使用しています。
docker run --restart=always \
-d \
-e RABBITMQ_NODENAME=rabbitmq \
-v /opt/docker/rabbitmq/data:/var/lib/rabbitmq/mnesia/rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
--name rabbitmq rabbitmq:3-management
私は、イメージを最初に起動したときに、デフォルトのユーザ/仮想ホストを提供したいニーズがあります。例えば、デフォルトの'test-user'を作成するためです。
現在、私は管理プラグインを使用して手動でそれを行い、Web UI を介してユーザー/仮想ホストを追加する必要があります。RabbitMQイメージの開始時にデフォルト設定を提供できる方法はありますか?
どのように解決するのですか?
基本イメージの機能を拡張し、デフォルトユーザーを作成する簡単なDockerfileを作成することができます。 必要なDockerファイルは以下の通りです。
FROM rabbitmq
# Define environment variables.
ENV RABBITMQ_USER user
ENV RABBITMQ_PASSWORD user
ENV RABBITMQ_PID_FILE /var/lib/rabbitmq/mnesia/rabbitmq
ADD init.sh /init.sh
RUN chmod +x /init.sh
EXPOSE 15672
# Define default command
CMD ["/init.sh"]
そして、init.sh。
#!/bin/sh
# Create Rabbitmq user
( rabbitmqctl wait --timeout 60 $RABBITMQ_PID_FILE ; \
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null ; \
rabbitmqctl set_user_tags $RABBITMQ_USER administrator ; \
rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*" ; \
echo "*** User '$RABBITMQ_USER' with password '$RABBITMQ_PASSWORD' completed. ***" ; \
echo "*** Log in the WebUI at port 15672 (example: http:/localhost:15672) ***") &
# $@ is used to pass arguments to the rabbitmq-server command.
# For example if you use it like this: docker run -d rabbitmq arg1 arg2,
# it will be as you run in the container rabbitmq-server arg1 arg2
rabbitmq-server $@
このスクリプトは、ポート15672でRabbitMQのWebadminを初期化し、公開するものです。
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] MinikubeでローカルのDockerイメージを使用するには?
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Alpine Dockerfile --no-cache Vs. rm /var/cache/apk/* の利点。
-
[解決済み] ディレクトリをファイルにマウントしようとしていませんか(またはその逆)?
-
[解決済み] Kubernetesのローカル開発環境を構築する方法とは?
-
[解決済み] Linuxでdockerを停止する方法
-
[解決済み] Docker CMDを複数回使用して、複数のサービスを実行することができないのはなぜですか?
-
[解決済み] 実行中のすべてのdockerコンテナを再起動するためのコマンド?
-
[解決済み] Dockerにマウントされたボリュームは、Linuxスタイルのパスから変換する際にWindowsパスの最後に;Cを追加します。
-
[解決済み] Dockerfileでchownが効かないのはなぜですか?
-
[解決済み] Ansibleの二重中括弧のエスケープ
-
[解決済み] RHEL上のDocker CE - Requires: container-selinux >= 2.9