У меня есть Angular 8. NET Базовое приложение, которое я пытаюсь запустить в Docker. Я могу успешно создать Docker образ и запустить контейнер в режиме отсоединения. Я могу выполнить c в работающий контейнер и go в папку Angular и успешно запустить ng serve --host 0.0.0.0
. Когда я go в папку. NET и запускаю dotnet run
, он зависает в «Использование параметров запуска из ... / launchsettings. json». В Dockerfile я выставляю порт 80 со строкой EXPOSE 80
. Когда я запускаю контейнер, я сопоставляю порты для Angular frontend (4200) и. NET backend (5000) следующим образом:
docker run -it --rm -d -p 4200:4200 -p 5000:80 portal /bin/bash
Я не получаю никаких ошибок, когда я запустить dotnet run
в контейнере. Как мне получить dotnet run
до фини sh?
ОБНОВЛЕНИЕ: Вот мой Dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app/
EXPOSE 80
#install node and npm
RUN apt-get update -yq && apt-get upgrade -yq && apt-get install -yq curl git nano
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt-get install -yq nodejs build-essential
#install angular-cli
RUN npm install -g @angular/cli
RUN mkdir library
#add local nuget packages
ADD ./library/. /app/library
RUN mkdir Web
COPY ./Web/. /app/Web
RUN cd Web && npm install
RUN mkdir API
# currently in the app folder
COPY ./API/Api.csproj /app/API
ENV DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
COPY ./API/NuGet.config /app/API
RUN cd API && dotnet restore
#copies all files into current directory
COPY ./API/. /app/API
Вот мои настройки запуска. json:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:52121",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"API": {
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5000/"
}
}
}
ОБНОВЛЕНИЕ 2: Я нашел. NET Core Docker образец приложения https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-3.1 Я добавил профиль порта 80 в стартовые настройки примера приложения. json в мои стартовые настройки. json без успеха. Я полностью озадачен в этом пункте. Я выполнил команду 'do tnet run' с '--verbosity подробно' в контейнере docker и не получил ни предупреждений, ни ошибок. Я подозреваю, что это может быть связано с подключением к базе данных, но я даже не знаю, с чего начать, как его устранить.