Docker和networking核心应用程序不起作用
我试图用Docker设置dotnet应用程序。
Dockerfile在“后端”文件夹中:
FROM microsoft/dotnet:1.1-sdk AS build-env WORKDIR /app COPY *.csproj ./ RUN dotnet restore COPY . ./ RUN dotnet publish -c Release -o out FROM microsoft/dotnet:1.1-runtime WORKDIR /app COPY --from=build-env /app/out ./ CMD ["dotnet", "backend.dll"]
在“前端”文件夹中的Dockerfile:
# build FROM node AS build-env WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install COPY . /usr/src/app/ RUN npm run build # run FROM nginx COPY --from=build-env /usr/src/app/build /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf
nginx.conf
events {} http { server { listen 80; location / { root /usr/share/nginx/html; include /etc/nginx/mime.types; } location /api { rewrite ^/api/?(.*) /$1 break; proxy_pass http://api:5000; } } }
泊坞窗,compose.yml
version: "3" services: # redis: # image: redis # container_name: demoapp-redis # db: # image: postgres # container_name: demoapp-database api: build: context: ./backend container_name: demoapp-backend ports: - 5000:5000 # depends_on: # - db web: build: context: ./frontend container_name: demoapp-frontend ports: - 80:80 depends_on: - api
当我用dotnet run
启动我的应用程序时,一切正常
MacBook-Pro-Pavel:~ pavel$ curl http://localhost:5000/values ["value1","value2"]
但是当我运行docker-compose up
我得到这个消息:
demoapp-backend | warn: Microsoft.AspNetCore.Server.Kestrel[0] demoapp-backend | Unable to bind to http://localhost:5000 on the IPv6 loopback interface: (Error -99 EADDRNOTAVAIL address not available) demoapp-backend | Hosting environment: Production demoapp-backend | Content root path: /app demoapp-backend | Now listening on: http://localhost:5000 demoapp-backend | Application started. Press Ctrl+C to shut down.
当我尝试提出请求时:
MacBook-Pro-Pavel:~ pavel$ curl http://localhost:5000/values curl: (52) Empty reply from server MacBook-Pro-Pavel:~ pavel$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2ae78ca79f56 demo_web "nginx -g 'daemon ..." 39 minutes ago Up About a minute 0.0.0.0:80->80/tcp demoapp-frontend 9220206e46fe demo_api "dotnet backend.dll" 7 hours ago Up About a minute 0.0.0.0:5000->5000/tcp demoapp-backend
我添加.UseUrls("http://0.0.0.0:5000")
到我的Program.cs ,感谢Andy Shinn
- 我如何提供应用程序configuration到我的在Docker容器中运行的.NET Core Web API服务?
- 在定义的端口上运行RC2项目
- 什么会阻止在Docker容器中运行的代码连接到单独的服务器上的数据库?
- 无法使用入口点运行泊坞窗容器
- 运行在Docker容器中并在Kubernetes上运行的dotnet核心Web API
- 在NuGet中debugging.NET Core项目和.NET库
- 无论使用ITicketStore还是IDistributedCache,重新启动服务器时,身份validationCookie都会停止工作
- 如何在.NET核心应用程序泊坞窗图像中包含依赖关系?
- dotnet运行不会使用bower软件包