Когда я запускаю nestjs с компоновкой докеров, перенаправления микросервисов не работают, но в команде «nest start» приложение воспроизводится так, как я хочу.
ответ API шлюза
connect ECONNREFUSED 127.0.0.1:3000
gateway | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
gateway | errno: -111,
gateway | code: 'ECONNREFUSED',
gateway | syscall: 'connect',
gateway | address: '127.0.0.1',
gateway | port: 3000
gateway | }
Код докер-compose.yml
services:
auth:
container_name: auth
restart: always
build:
context: ./auth
dockerfile: dockerfile
ports:
- 3000:3000
networks:
- docker_dev_cloud
gateway:
container_name: gateway
restart: always
build:
context: ./gateway
dockerfile: dockerfile
ports:
- 4000:4000
networks:
- docker_dev_cloud
networks:
docker_dev_cloud:
driver: bridge
докерфайл шлюза Код
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 4000
CMD [ "npm", "run", "start:dev" ]
авторизация докерфайла Код
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "npm", "run", "start:dev" ]
Помоги мне, пожалуйста.
Попробуйте использовать 0.0.0.0 вместо localhost.
переместите localhost на имя службы, например: 127.0.0.1:3000 до авторизация: 3000
Вы не показываете фактическую конфигурацию шлюза, но похоже, что вы настроили его как прокси для самого себя, 127.0.0.1. Вам нужно настроить его для использования вместо этого имени службы Compose
auth
внутренней службы?