Как создать готовое к производству приложение Angular Dotnet Core Docker App

#.net #angular #docker

#.net #angular #docker

Вопрос:

Мы пытаемся создать контейнер Docker, в котором есть сервер приложений .Net и клиент Angular

структура проекта — ReportBackEnd/ — некоторые каталоги .net core по умолчанию / — angular/

Мы создали следующий файл Docker

 FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
# Setup NodeJs
RUN apt-get update -qq amp;amp; 
    apt-get install -qq -y wget amp;amp; 
    apt-get install -qq -y gnupg2 amp;amp; 
    wget -qO- https://deb.nodesource.com/setup_8.x | bash - amp;amp; 
    apt-get install -qq -y build-essential nodejs amp;amp; 
    apt-get install -qq -y nginx
# End setup

WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
# Setup NodeJs
RUN apt-get update -qq amp;amp; 
    apt-get install -qq -y wget amp;amp; 
    apt-get install -qq -y gnupg2 amp;amp; 
    wget -qO- https://deb.nodesource.com/setup_8.x | bash - amp;amp; 
    apt-get install -qq -y build-essential nodejs amp;amp; 
    apt-get install -qq -y nginx
# End setup
WORKDIR /src
COPY ["ReportBackEnd.csproj", "ReportBackEnd/"]
RUN dotnet restore "ReportBackEnd/ReportBackEnd.csproj"

COPY ["angular/package.json", "ReportBackEnd/angular/"]

RUN cd ReportBackEnd/angular 
    amp;amp; npm i --silent

COPY . ./
WORKDIR /src/ReportBackEnd
RUN dotnet build "ReportBackEnd.csproj" -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ReportBackEnd.dll"]
  

Запуск этого файла с помощью кнопки Docker в Visual Studio работает должным образом.

Однако, когда мы пытаемся создать его и запустить самостоятельно, мы получаем:

Программа не содержит статического метода Main, подходящего для точки входа

команды, которые мы используем, следующие:

 docker build -f "C:<dirs>ReportBackEndDockerfile" -t core:dev --target base
docker run -dt -p 80:80 core:dev