Как я могу заполнить тома локальным контентом, используя ECS и docker-compose - PullRequest
0 голосов
/ 06 ноября 2019

Ситуация

Я пытаюсь настроить кластер Prometheus / Grafana , используя AWS ECS . И Прометей, и Графана нуждаются в файлах конфигурации. Обычно я бы использовал том для передачи такого рода информации в образ докера.

Поскольку это две службы, я хотел бы использовать docker-compose, чтобы настроить их оба и связать их одновременно.

Попытка

Вот файл составления, который я использовал бы для обычной настройки докера:

version: '3.0'

volumes:
  prometheus_data: {}
  grafana_data: {}

services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    command:
      - '--storage.tsdb.path=/prometheus'
    ports:
      - 9090:9090

  grafana:
    image: grafana/grafana
    volumes:
      - grafana_data:/var/lib/grafana
      - ./grafana/provisioning/:/etc/grafana/provisioning/
    env_file:
      - ./grafana/config.monitoring
    ports:
      - 3000:3000

Это не похоже на работу, когда я запускаю ecs-cli compose service up. В частности, задачи запускаются, но затем завершаются сбоем, и я не вижу никаких свидетельств того, что файлы конфигурации действительно были введены.

В этом руководстве объясняется, как настроить образ Prometheus в ECS,но на самом деле он создает настроенный образ докера и публикует этот образ - он не использует docker compose.

Вопрос

Есть ли способ внедрить файлы (например, файлы конфигурации) из моего локальногокомпьютер в образы / задачи ECS с помощью docker-compose?

1 Ответ

1 голос
/ 06 ноября 2019

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

Так что япорекомендует поместить файл конфигурации в образ докера. например

FROM prom/prometheus 
COPY myconfig.yml /etc/prometheus/prometheus.yml

Также я предпочту ECR в качестве реестра докеров в AWS.

Недостаток монтирования в случае ECS

  • Вам нужно будет сохранить конфигурацию в экземпляре EC2
  • Вы не сможете использовать в случае fargate , поскольку в fargate нет сервера для управления
  • Выбудет зависеть в AMI в случае автоматического масштабирования, так как ваш docker-контейнер зависит от конфигурации
...