Nginx внутри контейнера ASP.NET Core Docker - PullRequest
0 голосов
/ 07 июня 2018

К сожалению, не так много документации о том, как можно внедрить прокси Nginx или Apache в контейнер ASP.NET Core Docker.Вот хорошее руководство, которое работает, но в нем есть отдельные образы для приложения ASP.NET Core и Nginx.

ASP.NET Core API позади обратного прокси-сервера Nginx с Docker.

Я хочу разместить свой образ Docker в Azure, поэтому мне нужно иметь Nginx в моем контейнере Docker.

На основе этой статьи Обратный прокси-сервер Nginx для ASP.NET Core - тот же Docker-контейнер Я создал эту конфигурацию:

nginx.conf

worker_processes 4;

events { worker_connections 1024; }

http {
sendfile on;

proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;
large_client_header_buffers 4 16k;

upstream app_servers {
    server 127.0.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;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
    }
  }
}

Dockerfile

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build

RUN apt-get update
RUN apt-get install -y apt-utils

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y nginx

WORKDIR /src

COPY MyApp.csproj MyApp.csproj
RUN dotnet restore
COPY . .
WORKDIR /src
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .

RUN rm -f /app/startup.sh
COPY startup.sh /app
RUN chmod 755 /app/startup.sh

RUN rm -f /etc/nginx/nginx.conf
COPY nginx.conf /etc/nginx

ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000 80

CMD ["sh", "/app/startup.sh"]

Startup.sh

#!/bin/bash
service nginx start
dotnet /app/MyApp.dll

По-прежнему получают сообщение «Служба недоступна». Возможно, из-за проверки подлинности Azure AAD.Кто-то может порекомендовать что-то или предоставить другую рабочую конфигурацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...