Как опубликовать основное приложение aspnet в «виртуальном каталоге» на ecs? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь опубликовать веб-приложение aspnet core 2.1 по умолчанию в ECS в подкаталоге. Если я установлю путь слушателя ELB в * для пересылки всего трафика, он работает Однако мне нужно опубликовать это в "виртуальном каталоге" "

http://[url]/dms/

запуск его в корне работает нормально, но кажется, что Kestrel не отображает подкаталог в мое приложение.

  • Я попытался настроить переменную ENV ASPNETCORE_URLS на http://*/dms:80, и она не работает. Я продолжаю получать 404

  • Я также пробовал .UseUrls ("http://*/dms:80"), который не работает. Он выбрасывает 503 Сервис временно недоступен

Моя политика CF выглядит следующим образом [Я должен был включить 404 в качестве хорошего кода, в противном случае проверки работоспособности продолжат проваливаться]

 DocMgrTargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      HealthCheckIntervalSeconds: 120
      HealthCheckPath: /dms/
      HealthCheckProtocol: HTTP
      HealthCheckTimeoutSeconds: 60
      HealthyThresholdCount: 2
      Name: !Sub eds-${Environment}-docmgr-tg
      Port: 80
      Protocol: HTTP
      TargetType: instance
      UnhealthyThresholdCount: 8
      Matcher:
        HttpCode: 200-499
      VpcId: 
        Fn::ImportValue: !Sub 'eds-${Environment}-ecs-cluster-vpc'

  # Create a rule on the load balancer for routing traffic to the target group
  LoadBalancerRule:
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:      
      Actions:
        - TargetGroupArn: !Ref 'DocMgrTargetGroup'
          Type: 'forward'
      Conditions:
        - Field: path-pattern
          Values:
            - "/dms*"
      ListenerArn:
        Fn::ImportValue: !Sub 'eds-${Environment}-ecs-cluster-listener'
      Priority: !Ref 'Priority

и мой файл Docker выглядит так

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["Example.WebApp/Example.WebApp.csproj", "Example.WebApp/"]
RUN dotnet restore "Example.WebApp/Example.WebApp.csproj"
COPY . .
WORKDIR "/src/Example.WebApp"
RUN dotnet build "Example.WebApp.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "Example.WebApp.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
# I have also tried URL to be http://*/dms:80
ENV ASPNETCORE_URLS http://*:80  
ENTRYPOINT ["dotnet", "Example.WebApp.dll"]


Мне бы очень хотелось, чтобы переменная окружения работала. Любая помощь приветствуется.

...