У меня два контейнера docker. Один контейнер - это база данных, а другой - веб-приложение. Веб-приложение обращается к базе данных по этой ссылке http://localhost: 7200. Однако контейнер docker веб-приложения не может достичь контейнера базы данных.
Я пробовал этот docker -compose.yml, но не работал:
version: '3'
services:
web:
# will build ./docker/web/Dockerfile
build:
context: .
dockerfile: ./docker/web/Dockerfile
links:
- graph-db
depends_on:
- graph-db
ports:
- "8080:8080"
environment:
- WAIT_HOSTS=graph-db:7200
networks:
- backend
graph-db:
# will build ./docker/graph-db/Dockerfile
build:
./docker/graph-db
hostname: graph-db
ports:
- "7200:7200"
networks:
backend:
driver: "bridge"
Итак У меня есть два контейнера: веб-приложение: http://localhost: 8080 / reasoner, и этот контейнер вызывает базу данных в http://localhost: 7200, которая находится в другом контейнере. Однако контейнер базы данных недоступен для веб-контейнера.
РЕШЕНИЕ
version: '3'
services:
web:
# will build ./docker/web/Dockerfile
build:
context: .
dockerfile: ./docker/web/Dockerfile
depends_on:
- graph-db
ports:
- "8080:8080"
environment:
- WAIT_HOSTS=graph-db:7200
graph-db:
# will build ./docker/graph-db/Dockerfile
build:
./docker/graph-db
ports:
- "7200:7200"
и замените http://localhost: 7200 в коде веб-приложения на http://graph-db: 7200