你好,我有以下问题:
我有一台ASP .NET Core
服务器,它是docker化的,并在带有docker-compose
的容器中运行。我通过postman
向我的服务器发送请求,并得到500-internal server error
。
我尝试过:
docker attach myserver
,控制台中什么也没得到。docker logs myserver
我只会得到初始日志(启动)。telnet hostname port
,看来可以正常连接,但我不知道如何创建请求。我如何才能使用console
服务器的ASP .NET Core
?
docker-compose
version: '3.3'
services:
db:
image: redis:4.0.5-alpine
container_name: redis0
networks:
- redis-net
ports:
- 6381:6379
backend:
image: server
container_name: server0
build: ./Server
command: ["dotnet","Server.dll"]
depends_on:
- db
ports:
- 9400:9300
networks:
- redis-net
networks:
redis-net:
dockerfile (用于服务器)
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY ./publish /app
EXPOSE 9300
Startup.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
string port="9300";
var builder = new WebHostBuilder();
builder.UseStartup<Startup>();
var url =$"http://0.0.0.0:{port.ToString()}/";//Address.Default.ToUrl();
Debug.WriteLine(url);
builder.UseKestrel().UseUrls(url);
return builder;
}
答案 0 :(得分:3)
配置您的.net核心应用以将日志打印到控制台
E.g. Console.WriteLine("Some application log");
重建并运行容器
docker-compose build
docker-compose up
使用
获取正在运行的container-id
容器的server
docker ps
在另一个命令窗口中运行此命令以跟踪日志
docker logs --follow <container-id>
运行此命令进入容器的bash外壳
docker exec -it <container-id> bash