我的小型微服務專案使用docker-compose. 在構建和構建下面的組合之后,我看到一切都在作業并且所有服務都在運行,但是現在我有一個問題。我的api-gateway服務未連接到其他服務,并且當 api-gateway 嘗試向 eq 發出請求時。account-service然后控制臺扔給我這個:
api-gateway | [Nest] 1 - 05/21/2022, 9:38:51 PM ERROR [ExceptionsHandler] connect ECONNREFUSED 127.0.0.1:3002
所以,我認為問題出在我的容器中,在他的所有服務之間。
有人可以告訴我我做錯了什么嗎?
這是我的 docker-compose.yml
version: '3'
networks:
backend:
driver: bridge
services:
api:
container_name: api-gateway
build:
context: .
dockerfile: ./apps/api/Dockerfile
restart: always
hostname: api
env_file:
- .env
ports:
- "3000:3000"
networks:
- backend
account:
container_name: account-service
build:
context: .
dockerfile: ./apps/account/Dockerfile
restart: always
hostname: account
env_file:
- .env
ports:
- "3001:3001"
networks:
- backend
workspace:
container_name: workspace-service
build:
context: .
dockerfile: ./apps/workspace/Dockerfile
restart: always
hostname: workspace
env_file:
- .env
ports:
- "3002:3002"
networks:
- backend
Dockerfile
FROM node:14.8.0-alpine as develop
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build workspace
CMD node dist/apps/workspace/main
Dockerfile 對于所有服務都是一樣的。
謝謝你的幫助!
uj5u.com熱心網友回復:
在 docker compose 中,如果未設定容器名稱,則服務可以在與其容器名稱(在本例api-service中為account-service, workspace-service)或它們的名稱(api, account, )對應的主機名下相互使用。workspace
因此,為了在服務中發出請求,您需要將請求發送到
"http://workspace-service:3002"
代替
"http://localhost:3002"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480099.html
