2017-02-11 10 views
1

Я настраиваю приложение Spring для запуска с использованием compose. Приложению необходимо установить соединение с ActiveMQ, которое выполняется локально для разработчиков или существующих экземпляров для постановки/производства.Как настроить записи DNS для Docker Compose

я настроить после чего работает отлично подходит для местного разработчика:

amq: 
    image: rmohr/activemq:latest 
    ports: 
     - "61616:61616" 
     - "8161:8161" 
legacy-bridge: 
    image: myco/myservice 
    links: 
     - amq 

и в конфигурации приложения я заявляю соединение Amq как

broker-url=tcp://amq:61616 

Запуск докер-компоновать до работает прекрасно , activeMQ запускается локально, и мой инициатор приложения запускается и подключается к нему.

Теперь мне нужно установить это для постановки/производства, где экземпляры ActiveMQ работают на существующем оборудовании в рамках инфраструктуры. Мои мысли состоят в том, чтобы либо использовать профили пружин для обработки разных конфигураций, и в этом случае запись конфигурации приложения для «broker-url = tcp: // amq: 61616» станет чем-то вроде broker-url=tcp://some.host.here:61616 или найдет способ создания записи DNS в моей production docker-compose.yml, который укажет запись dns amq на связанные очереди или очереди производства.

Каков наилучший подход здесь, и если это DNS, как мне это настроить?

Спасибо!

ответ

3

Используя extra_hosts пометка

Первое, что приходит на ум использует Compose's extra_hosts флаг:

legacy-bridge: 
    image: myco/myservice 
    extra_hosts: 
    - "amq:1.2.3.4" 

Это не создаст DNS записи, но запись в /etc/hosts файл контейнера, позволяющий эффективно вам продолжить использование tcp://amq:61616 в качестве URL-адреса вашего брокера в своем приложении.

Использования посла контейнера

Если вы не довольствуясь непосредственно с указанием IP-адреса производственного брокера и хотели бы использовать существующие DNS запись, вы можете использовать ambassador pattern:

amq-ambassador: 
    image: svendowideit/ambassador 
    command: ["your-amq-dns-name", "61616"] 
    ports: 
    - 61616 
legacy-bridge: 
    image: myco/myservice 
    links: 
    - "amq-ambassador:amq" 

 Смежные вопросы

  • Нет связанных вопросов^_^