Не видит айпи докер контейнера

Не могу сделать запрос правильный с фронтэнда на бэк когда запущено через докер

Все 3 контейнера (фронт на реакте, бэк на ноде и постгрес) запускаю через docker-compose:

version: '3'
services:

  front-react:
    build:
      context: ./client
    environment:
      NODE_ENV: development
    depends_on:
      - server-dev
    volumes:
      - ./client:/client
      - /client/node_modules
    ports:
      - "3000:3000"

  server-dev:
    build:
      context: ./server
    environment:
      NODE_ENV: development
    ports:
      - "5002:5002"
    depends_on:
      - database
    volumes:
      - ./server:/server
      - /server/node_modules


  database:
    image: postgres:14.2-alpine
    environment:
      - POSTGRES_PASSWORD=password
      - POSTGRES_USER=postgres
      - POSTGRES_DB=rssParser
    ports:
      - "5432:5432"
    
volumes:
  server-dev:



Все отлично работает, фронт запустился и работает, бэк тоже запущен и в базу постоянно закидывает новости через парсер. Но стоит мне сделать запрос через ссылку к базе типа:

http://127.0.0.1:5002/api/login

Мне выдает ошибку. И через постман тоже! Вероятно ошибка в айпи сервера, и оно должно быть не локалхост, а или название докер контейнера или айпи его, но и они тоже не дают результат... Пробовал еще делать запросы:

http://rss_parser_server-dev_1:5002/api/registration
http://localhost.rss_parser_server-dev_1:5002/api/registration
http://rss_parser_server-dev:5002/api/registration
http://172.20.0.3:5002/api/registration

вот контейнеры которые запущены:

          Name                        Command               State                    Ports                  
------------------------------------------------------------------------------------------------------------
rss_parser_database_1      docker-entrypoint.sh postgres    Up      0.0.0.0:5432->5432/tcp,:::5432->5432/tcp
rss_parser_front-react_1   docker-entrypoint.sh /bin/ ...   Up      0.0.0.0:3000->3000/tcp,:::3000->3000/tcp
rss_parser_server-dev_1    docker-entrypoint.sh /bin/ ...   Up      0.0.0.0:5002->5002/tcp,:::5002->5002/tcp

вот айпи сервера:

sudo docker inspect rss_parser_server-dev_1 | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.20.0.3"

Я не понимаю где я облажался... помогите пожалуйста. Может где то что то надо в хост прописать, но тогда почему и через постман не работает запросы...

Ошибку в постман выдает: Error: connect ECONNREFUSED 172.20.0.3:5002


Ответы (1 шт):

Автор решения: Fkup

Все теперь стало понятно) два дня поиска не там где надо показали что надо кое где убрать,а именно был файл server.js:

require(`dotenv`).config();
const http = require('http');
const app = require('./app');
const PORT = process.env.PORT || 5002
const server = http.createServer(app);
server.listen(PORT, '127.0.0.1', () => {console.log(`Server is running on ${PORT} port!`)});

Поменял на вот такой:

require(`dotenv`).config();
const http = require('http');
const app = require('./app');
const PORT = process.env.PORT || 5002
const server = http.createServer(app);
server.listen(PORT, () => {console.log(`Server is running on ${PORT} port!`)});

Все, запросы можно делать, все ок!)

→ Ссылка