这个错误通常发生在尝试在docker-compose中运行Apollo Federation时出现连接问题。这可能是由于以下几个原因引起的:
networks
关键字在docker-compose文件中显式定义网络,并将每个服务连接到同一个网络。示例:
version: '3'
services:
apollo-federation:
build: .
ports:
- 4000:4000
networks:
- federation-network
service-1:
build: .
networks:
- federation-network
service-2:
build: .
networks:
- federation-network
networks:
federation-network:
示例:
Dockerfile:
EXPOSE 4000
Apollo Server代码(使用Node.js和Express):
const { ApolloServer } = require('apollo-server-express');
const app = express();
const server = new ApolloServer({ schema });
server.applyMiddleware({ app });
app.listen({ port: 4000 }, () =>
console.log(`Server running at http://localhost:4000${server.graphqlPath}`)
);
curl
命令或类似的工具从服务容器中测试连接。示例:
curl http://localhost:4000 # 替换为你的gateway主机和端口
如果你仍然遇到问题,请确保你的服务定义正确,并且没有其他网络或防火墙配置导致连接问题。