У меня есть основное решение asp.net, которое содержит 3 проекта.
Я хочу развернуть его в док-контейнере.
Вот как выглядит решение
Вот мой Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app
# 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 mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "tooseeweb.dll"]
Но когда я запускаю сборку Docker, я получаю это в консоли
Пропускпроект "/TooSeeWeb.Core/TooSeeWeb.Core.csproj", поскольку он не найден.
Пропуск проекта "/TooSeeWeb.Infrastructure/TooSeeWeb.Infrastructure.csproj", так как он не найден.
MSBUILD: ошибка MSB1009: файл проекта не существует. Переключатель: TooSeeWeb.csproj
Ошибка: ResponseItem.ErrorDetail [code = 1, сообщение = Команда '/ bin / sh -c dotnet build "TooSeeWeb.csproj" -c Выпуск -o/ app 'вернул ненулевой код: 1] Не удалось развернуть' Dockerfile: TooSeeWeb / Dockerfile ': команда' / bin / sh -c dotnet build "TooSeeWeb.csproj" -c Release -o / app 'вернула некод нуля: 1
Где может быть проблема?
ОБНОВЛЕНИЕ
Структура папок моего решения
TooSeeWeb
|- aspnet-core(folder)
|-TooSeeWeb (folder)
|- TooSeeWeb.sln
|- TooSeeWeb
|-Dockerfile
|- TooSeeWeb.csproj
|- TooSeeWeb.Core(folder)
|- TooSeeWeb.Core.csproj
|- TooSeeWeb.Infrastructure(folder)
|- TooSeeWeb.Infrastructure.csproj
UPDATE2
Я перемещаю dockerfile в ту же папку с помощью sln (это на одну папку вверх)
Теперь мой файл Docker выглядит следующим образом
ROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.sln ./
COPY TooSeeWeb/*.csproj ./TooSeeWeb/
COPY TooSeeWeb.Core/*.csproj ./TooSeeWeb.Core/
COPY TooSeeWeb.Infrastructure/.*csproj ./TooSeeWeb.Infrastructure/
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app/TooSeeWeb
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "tooseeweb.dll"]
Но я получил ошибку
Шаг 4/14: COPY * .sln ./ COPY не удалось: исходные файлы не были указаны