【发布时间】:2020-03-03 05:06:40
【问题描述】:
情况
我正在尝试使用AWS ECS 设置Prometheus / Grafana 集群。 Prometheus 和 Grafana 都需要配置文件。通常我会使用卷将此类信息传递给 docker 映像。
由于这是两个服务,我想使用 docker-compose 来设置它们并同时将它们绑定在一起。
尝试
这是我将用于正常 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 时,这似乎不起作用。具体来说,任务开始但随后崩溃,我没有看到任何证据表明配置文件实际上已被注入。
This guide 解释了如何在 ECS 上设置 Prometheus 镜像,但它实际上是创建一个配置好的 docker 镜像并发布该镜像——它没有使用 docker compose。
问题
有没有办法使用 docker-compose 将本地计算机中的文件(例如配置文件)注入到我的 ECS 映像/任务中?
【问题讨论】:
-
对于 ECS,我建议将配置放在 docker 映像中,而不是从主机挂载,这将帮助您在 fargate 中运行,因为 fargate 中没有服务器。例如
FROM prom/prometheus copy myconfig.yml /etc/prometheus/prometheus.yml。我 -
谢谢@Adiii,这是一个很好的建议。如果您有时间将其充实为答案,我也会将其标记为这样!
标签: docker docker-compose amazon-ecs