【发布时间】:2019-08-07 14:31:03
【问题描述】:
docker-compose up myapp.sample.api
Creating network "myapp_frontend" with the default driver
myapp-sample-mssql-cnr is up-to-date
Creating myapp-sample-api-cnr ... done
Attaching to myapp-sample-api-cnr
myapp-sample-api-cnr | warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
myapp-sample-api-cnr | No XML encryptor configured. Key {daa358c7-8c64-4e3c-90ea-06f48de12ad4} may be persisted to storage in unencrypted form.
myapp-sample-api-cnr | Hosting environment: Development
myapp-sample-api-cnr | Content root path: /app
myapp-sample-api-cnr | Now listening on: http://[::]:5000
myapp-sample-api-cnr | Application started. Press Ctrl+C to shut down.
这里的问题是我无法在这个指定的端口上打开我的 web api 应用程序
http://localhost:5000
返回无法得到邮递员的任何回复
在本地我可以通过 Visual Studio 调试打开这个应用程序。
docker-compose.yml
version: '3.4'
networks:
frontend:
backend:
services:
myapi.sample.api:
build:
context: .
dockerfile: MyApi.Sample.API/Dockerfile
image: myappsampleapi-img
container_name: myapp-sample-api-cnr
ports:
- "5000:80"
networks:
- backend
- frontend
depends_on:
- mssqlserver
mssqlserver:
image: "microsoft/mssql-server-linux:latest"
ports:
- "1445:1433"
container_name: myapp-sample-mssql-cnr
networks:
- backend
Dockerfile
FROM microsoft/dotnet:2.2-aspnetcore-runtime as base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ...
...
ENTRYPOINT ["dotnet", "MyApi.Sample.API.dll"]
我无法从 api 容器获取任何日志输出
docker logs -f myapp-sample-api-cnr
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {82dd75ea-8302-4859-a3e5-78eedf856e34} may be persisted to storage in unencrypted form.
Hosting environment: Development
Content root path: /app
Now listening on: http://[::]:5000
Application started. Press Ctrl+C to shut down.
编辑: 我试图更改 Dockerfile 以公开端口 5000 而不是 80
FROM microsoft/dotnet:2.2-aspnetcore-runtime as base
WORKDIR /app
EXPOSE 5000
在 docker ps -a 我得到了
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
964724837d13 myappsampleapi-img "dotnet MyApi.S…" 45 seconds ago Up 43 seconds 5000/tcp, 0.0.0.0:5000->80/tcp, 0.0.0.0:32788->80/tcp myapp-sample-api-cnr
还是有同样的问题,无法从localhost:5000上的api得到响应
【问题讨论】:
-
你能显示你的'myapi.sample.api'容器的日志吗?
-
由于某种原因,我无法从容器中获取日志输出。在本地它可以工作。
-
也许是个愚蠢的问题,但容器是否正在运行? (docker ps -a)