У меня есть. net core 2.1 api за nginx обратным прокси, который я настроил с помощью docker compose в visual studio. При запуске API доступен (у меня есть контроллер проверки работоспособности, который я могу вызвать для проверки), но я не могу отладить. Похоже, что мое решение не работает после сборки. Но мои контейнеры доступны и доступны. Я использую Visual Studio 2019.
Это структура моей папки:
- ...
- RestApi (папка папки проекта)
- Dockerfile
- docker -compose.yml
- ReverseProxy (папка)
- ...
это файлы (сверху вниз в структуре папок):
Dockerfile (для API):
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
WORKDIR /app
#EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build
WORKDIR /src
COPY ["RestApi/RestApi.csproj", "RestApi/"]
COPY ["Services/Services.csproj", "Services/"]
COPY ["DataServices/DataServices.csproj", "DataServices/"]
COPY ["Entities/Entities.csproj", "Entities/"]
RUN dotnet restore "RestApi/RestApi.csproj"
COPY . .
WORKDIR "/src/RestApi"
RUN dotnet build "RestApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "RestApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000
ENTRYPOINT ["dotnet", "RestApi.dll"]
docker -compose.yml:
version: '2.1'
services:
restapi:
build:
context: ./
dockerfile: Dockerfile
expose:
- "5000"
#restart: always
reverseproxy:
build:
context: ./ReverseProxy
dockerfile: Dockerfile
ports:
- "80:80"
#restart: always
links :
- restapi
Dockerfile (обратный прокси):
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
nginx .conf:
worker_processes 4;
events { worker_connections 1024; }
http {
sendfile on;
upstream app_servers {
server RestApi:5000;
#server 172.17.0.1:5000;
}
server {
listen 80;
location / {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
}
При работе docker -создать через visual studio контейнеры docker созданы правильно, но я не могу отладить, и экран браузера не запускается. Я не получаю ошибок при сборке или запуске. Если вам нужна дополнительная информация, пожалуйста, спросите.