аргумент команды docker-composr.yml - PullRequest
0 голосов
/ 16 октября 2018

Есть ли способ заставить эту команду выполняться в контейнере в качестве аргумента команды docker-compose.yml?

:

"rabbitmqctl set_policy ha "example-queue" '{"ha-mode":"all", "ha-sync-mode":"automatic"}' --priority 1 --apply-to queues"

docker-compose.yml:

version: '2.3'
services:
rabbit1:
    image: rabbitmq:v378
    hostname: rabbit1
    environment:
        - RABBITMQ_ERLANG_COOKIE=abcdefg
    volumes:
        - ./enabled_plugins:/etc/rabbitmq/enabled_plugins
        - ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
        - ./definitions.json:/etc/rabbitmq/definitions.json
    ports:
        - "5672:5672"
        - "15672:15672"
        - "25672:25672"
        - "4369:4369"

спасибо

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Я предполагаю, что вы хотите запускать команду:

rabbitmqctl set_policy ha "example-queue" '{"ha-mode":"all", "ha-sync-mode":"automatic"}' --priority 1 --apply-to queues

всякий раз, когда вы запускаете контейнер.Затем просто добавьте следующее в ваш docker-compose

entrypoint:
     - rabbitmqctl 
     - set_policy 
     - ha 
     - "example-queue" 
     - '{"ha-mode":"all", "ha-sync-mode":"automatic"}' 
     - --priority 
     - 1 
     - --apply-to 
     - queues

Я почти уверен, что это должно работать, но если нет, оставьте комментарий, мы обсудим и выясним ошибки.

Кроме того, ваша команда немного неясна для меня, поэтому я не знаю, какая опция относится к каким значениям.Возможно, что --priority=1 должен быть написан вместо того, чтобы записать их в две строки.

0 голосов
/ 16 октября 2018

Вы уже используете файл определений, так почему вы не заполняете его информацией о политике?

"policies": [
  {
    "vhost": "/",
    "name": "ha",
    "pattern": "example-queue",
    "apply-to": "queues",
    "definition": {
      "ha-mode": "all",
      "ha-sync-mode": "automatic"
    },
    "priority": 1
  }
]

Это самый простой способ, и он вообще не использует Docker.

0 голосов
/ 16 октября 2018

Docker compose имеет поддержку команды в качестве параметра:

https://docs.docker.com/compose/compose-file/#command

...