我有asp.net核心解决方案,其中包含3个项目。
我想将其部署到docker容器中。
这里是解决方案的样子
这是我的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 build时 我在控制台中找到了
跳过项目“ /TooSeeWeb.Core/TooSeeWeb.Core.csproj”,因为它 找不到。
跳过项目 “ /TooSeeWeb.Infrastructure/TooSeeWeb.Infrastructure.csproj”,因为它 找不到。
MSBUILD:错误MSB1009:项目文件不存在。开关:TooSeeWeb.csproj
错误:ResponseItem.ErrorDetail [code = 1,message =命令'/ bin / sh -c dotnet版本“ TooSeeWeb.csproj” -c版本-o / app'返回了 非零代码:1]无法部署'Dockerfile: TooSeeWeb / Dockerfile':命令'/ bin / sh -c dotnet build “ TooSeeWeb.csproj” -c版本-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失败:未指定源文件