Создание образа приложения углового Wep ASP.NET Core 3.0 из Linux - PullRequest
1 голос
/ 05 октября 2019

Я создал приложение ASP.NET Core, которое использует Angular на внешнем интерфейсе. Он отлично работает на моей машине с Windows, а также в среде MacOS. Теперь я хотел бы создать образ Docker этого приложения на основе образа Linux. Кажется, это должно быть достаточно распространенным явлением, но мне не удалось найти что-то с поиском в Google, и мои текущие попытки провалились. Вот что у меня есть:

FROM ubuntu AS build-env
WORKDIR /app

RUN apt-get update -y
RUN apt-get install curl libunwind-dev libc6 libgcc1 libgssapi-krb5-2 libicu60 liblttng-ust0 libssl1.0.0 libstdc++6 zlib1g -y

COPY ./dotnet-install.sh .
RUN ./dotnet-install.sh -c Current
RUN ls -l 

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN ./dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM ubuntu
WORKDIR /app

COPY ./dotnet-install.sh .
RUN ./dotnet-install.sh -c Release

COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]

Сценарий оболочки dotnet-install.sh поставляется с веб-сайта Microsoft. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что CLI 'dotnet' не найден, поэтому ошибки сборки возникают при его вызове. Есть ли какие-либо указатели на то, что необходимо сделать для успешной сборки приложения и что нужно установить для его запуска?

1 Ответ

0 голосов
/ 05 октября 2019

Почему вы пытаетесь создать изображение с нуля? В этом нет необходимости. Microsoft предоставляет как .NET Core SDK, так и образы времени выполнения. Ваш Dockerfile должен выглядеть так:

FROM mcr.microsoft.com/dotnet/core/sdk as build

# Copy csproj and restore as distinct layers
COPY *.csproj .
RUN dotnet restore

# Copy everything else and build
COPY . .
RUN dotnet publish -c Release

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet as final
WORKDIR /app

COPY --from=build /app .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]

В качестве дополнительного преимущества образы Microsoft являются многоархитивными, поэтому вы можете развернуть этот Dockerfile в контейнере Windows или Linux.

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