Я пытаюсь развернуть три службы с docker-compose
и Traefik:
version: '3.5'
services:
reverse-proxy:
image: traefik
command: --web --docker --logLevel=INFO
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.frontend.rule=Host:traefik.localhost"
- "traefik.port=8080"
db:
build: ./db
environment:
- MONGO_INITDB_DATABASE=example
volumes:
- ./volumes/db:/data/db
restart: always
labels:
- "traefik.enable=false"
api:
build: ./api
environment:
- DATABASE_CLIENT=mongo
- DATABASE_HOST=db
- DATABASE_PORT=27017
- DATABASE_NAME=example
- HOST=localhost
expose:
- "1337"
depends_on:
- db
restart: always
labels:
- "traefik.frontend.rule=Host:api.localhost"
website:
build: ./app
labels:
- "traefik.frontend.rule=Host:web.localhost"
Последний контейнер (website
) - это статическая сборка веб-сайта с create-react-app
, которая использует API (api
):
let response = await fetch(`http://api:1337/news`);
Проблема в том, что веб-сайт не может разрешить хост http://api:1337
(т.е. по имени контейнера), но если я изменю эту строку на:
let response = await fetch(`http://<container-ip>:1337/news`);
Все отлично работает.Я попытался настроить сеть, и она тоже не работает.Любая помощь?Спасибо!