我正在尝试连接到 docker 容器中的 GraphQL API,但我无法在 Postman 或 Web 浏览器中访问它。
我的 dockerfile 和 docker compose 文件可能有问题,但我不确定是什么损坏了。
在我的 docker 映像文件中,我公开端口:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 5000
EXPOSE 5001
在我的 docker-compose 文件中(由于另一个容器而包含网络):
version: '2'
networks:
default:
ipam:
driver: default
services:
app:
image: graphql
volumes:
- ../:/https/
env_file:
- ../env.secrets
ports:
- "5000:5000"
- "5001:5001"
networks:
- default
My appsettings.json file:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Urls": "http://*;https://*"
}
如果我在 docker 外部运行我的应用程序并使用 postman,我可以毫无问题地访问我的 GraphQL 端点并执行查询: 'http://localhost:5000/graphql'
但是,当我在容器内运行它时,情况并非如此。我确定我的端口配置正确。
我在 Postman 中工作了。我相应地更改了端口:
5000-5001/tcp,0.0.0.0:5000->80/tcp
所以我的撰写文件中的端口映射更改为:
services:
app5:
image: graphql-app5-demo
volumes:
- ../:/https/
env_file:
- ../env.secrets
ports:
- 5000:80
networks:
- default
我的邮递员端点 URL: “http://localhost:5000/graphql”
虽然我真的不想在这里使用端口80,而是使用与5000相同的端口。