У нас есть приложение ASP.Net, которое мы запускаем под Ubuntu 18.04 (с установленным aspnetcore 2.2, только во время выполнения). Мы используем сервис kestrel для обслуживания приложения и nginx в качестве обратного прокси. Все отлично работает при установке в экземпляр виртуальной машины / облака.
Теперь я ищу контейнеризацию нашего приложения (просто тестирование воды). Итак, я построил образ, используя следующий dockerfile:
FROM ubuntu:18.04
RUN apt-get update && \
apt-get -y install software-properties-common wget && \
wget -q -O /opt/packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
dpkg -i /opt/packages-microsoft-prod.deb && \
add-apt-repository universe && \
apt-get update && \
apt-get install -y apt-transport-https aspnetcore-runtime-2.2 nginx
COPY default /etc/nginx/sites-available/default
COPY appfolder /opt/
ENTRYPOINT ["dotnet", "/opt/appfolder/app.dll"]
EXPOSE 80:80
Но, когда я пытаюсь запустить образ, я получаю следующую ошибку:
Вы хотели запускать команды dotnet SDK? Пожалуйста, установите dotnet SDK
от: https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
Есть идеи, что может пойти не так? Мое предположение (будучи новичком в мире Docker):
Используйте Ubuntu 18.04 в качестве базового образа и установите Dotnet и Nginx сверху, затем скопируйте сайт по умолчанию nginx и запустите приложение (используя dotnet). Видимо, я что-то упускаю.