Dockerfile缺少软件包

时间:2019-08-19 22:05:09

标签: docker asp.net-core

我有以下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还原上方,该构建仍然失败,因为它声称该目录中没有文件。我错过了哪一步呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

弄清楚了,我是对的,这是一件小事。

使用/ packages / .dll(而不是使用COPY C:/ PATH / to / packages / .dll),其中/ packages是托管.csproj的文件夹中的文件夹。