Я создаю приложение React-Native, используя Rest API (NodeJS, Express) и PostgreSQL.
Все работает хорошо, когда размещено на моей локальной машине. Все работает хорошо, когда API находится на моей машине и PostgreSQL в docker контейнере.
Но когда backend и frontend находятся в docker, база данных доступна со всего моего компьютера локально, но не по бэкэнду.
Я использую docker -compose.
version: '3'
services:
wallnerbackend:
build:
context: ./backend/
dockerfile: ../Dockerfiles/server.dockerfile
ports:
- "8080:8080"
wallnerdatabase:
build:
context: .
dockerfile: ./Dockerfiles/postgresql.dockerfile
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
env_file: .env_docker
volumes:
db-data:
.env_ docker и .env имеют одинаковые параметры (только изменение имени).
Вот мои докер-файлы:
Backend
FROM node:14.1
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
База данных
FROM postgres:alpine
COPY ./wallnerdb.sql /docker-entrypoint-initdb.d/
Я попытался изменить имя хоста в URL-адресе соединения на postgres, используя имя docker, мой IP-адрес хоста, localhost, но безрезультатно.
Это также тот же .env (файл в моем репозитории узла с именем db_ passwd et c), который я использую в локальной сети для подключения моего бэкенда к базе данных.