我有以下dockerfile,可以很好地用于通过Visual Studio构建和运行:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MyProject.csproj", ""]
RUN dotnet restore "MyProject.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "MyProject.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "MyProject.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProject.dll"]
问题是,当我尝试在托管.csproj的目录中运行docker build时,缺少对本地.dll程序包的引用。
我知道我需要使用dockerfile COPY将软件包放入容器中,但是当我尝试使用以下代码时:
COPY C:/path/to/packages/*.dll .
就在RUN dotnet还原上方,该构建仍然失败,因为它声称该目录中没有文件。我错过了哪一步呢?
谢谢!
答案 0 :(得分:0)
弄清楚了,我是对的,这是一件小事。
使用/ packages / .dll(而不是使用COPY C:/ PATH / to / packages / .dll),其中/ packages是托管.csproj的文件夹中的文件夹。