как выполнить начальную настройку консула с определенным ключом / значением - PullRequest
0 голосов
/ 09 марта 2020

У меня есть настройка docker config с использованием docker compose.

это часть docker compose file

version: '3'
networks:
  pm:
services:
  consul:
    container_name: consul
    image: consul:latest
    restart: unless-stopped
    ports:
      - 8300:8300
      - 8301:8301
      - 8302:8302
      - 8400:8400
      - 8500:8500
      - 8600:8600
    environment:
      CONSUL_LOCAL_CONFIG: >-
        {
          "bootstrap": true,
          "server": true,
          "node_name": "consul1",
          "bind_addr": "0.0.0.0",
          "client_addr": "0.0.0.0",
          "bootstrap_expect": 1,
          "ui": true,
          "addresses" : {
            "http" : "0.0.0.0"
          },
          "ports": {
            "http": 8500
          },
          "log_level": "DEBUG",
          "connect" : {
            "enabled" : true
          }
        }
    volumes:
      - ./data:/consul/data
    command: agent -server -bind 0.0.0.0 -client 0.0.0.0 -bootstrap-expect=1

Затем установите значение ключа через браузер

Я хотел бы добавить ключ / значение в качестве начального в новой среде, чтобы можно было избежать дополнительных шагов настройки в браузере.

это конфигурация, которую я экспортирую с помощью команды consul kv:

# consul kv export config/
[
        {
                "key": "config/",      
                "flags": 0,
                "value": ""
        },
        {
                "key": "config/drug2/",
                "flags": 0,
                "value": ""
        },
        {
                "key": "config/drug2/data",
                "flags": 0,
                "value": "e30="
        }
]

1 Ответ

1 голос
/ 29 апреля 2020

Насколько мне известно Docker У Compose нет способа запустить пользовательскую команду / скрипт после запуска контейнеров.

В качестве обходного пути вы могли бы написать сценарий оболочки, который выполняет docker-compose up, а затем либо запускает команду consul kv import или curl против API Консул Транзакция , чтобы добавить данные, которые вы пытаетесь загрузить.

...