Я настраиваю среду для веб-приложения на AWS ECS с помощью Fargate. Программа установки использует несколько контейнеров для внешнего и внутреннего интерфейса и Traefik (также в контейнере) для маршрутизации за ALB. Я использую файлы ecs-cli и docker-compose для развертывания, и все работает нормально.
Несмотря на то, что все работает правильно, контейнер traefik постоянно регистрирует ошибки о невозможности подключения к docker.sock.
time="2019-09-12T21:54:13Z" level=error msg="Failed to retrieve information of the docker client and server host: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"
time="2019-09-12T21:54:13Z" level=error msg="Provider connection error Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?, retrying in 3.829225701s"
Я прекрасно понимаю, что traefik не сможет подключиться к docker.sock в этой среде, и поскольку я настроил ECS Provider, по-видимому, правильно, ему не нужно подключаться к сокету. Значит, все еще пытается.
traefik.toml
[entryPoints]
...
[ecs]
clusters = ["cluster-name"]
watch = true
refreshSeconds = 15
exposedByDefault = true
region = "eu-west-1"
domain = "ecs.domain"
[retry]
docker-comopse.yml
version: "3"
services:
proxy:
image: ${custom-image-with-toml-baked-in}
command: --api --docker
ports:
- "80:80"
- "443:443"
- "8080:8080"
labels:
- "traefik.enable=true"
- "traefik.backend=traefik"
- "traefik.frontend.rule=Host:traefik.ecs.domain"
- "traefik.port=8080"
logging:
driver: awslogs
...
...
Итак, как я уже упоминал, похоже, что Traefik все еще хочет подключиться к docker.sock, а я не могу найти способ указать Traefik полагаться только на ECS.