【发布时间】:2020-12-04 09:34:26
【问题描述】:
我有一个大问题: 我必须将 .dll 文件复制到我的 Docker 映像中。我无法从 NuGet 中拉取它,因为它是一个私有包,您无法通过 url 和 nuget.config 正常拉取它。 我问了我的同事,他们说我应该将文件复制到 Docker Image 中。 有人知道怎么做吗?
我已将此 .dll 文件复制到我的正常项目目录中。但我不知道在哪里复制它或如何复制它。
这是我的 DockerFile:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["DoKiva/DoKiva.csproj", "DoKiva/"]
RUN dotnet restore "DoKiva/DoKiva.csproj"
COPY . .
WORKDIR "/src/DoKiva"
RUN dotnet build "DoKiva.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DoKiva.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DoKiva.dll"]
如果您能帮助我,我将不胜感激!
我的 Docker 构建命令是 docker build -t dokivac 。
【问题讨论】:
-
您可以将此dll的链接添加到
csproj文件并设置CopyAlways。然后它会在构建过程中被复制到输出目录 -
谢谢!我在哪里可以编辑 .csproj 以及我必须添加什么对不起我是 C# 和 Docker 的新手。
-
好的,我包含了它,但我如何指定
CopyAlways -
先正常构建项目,然后打包到 Docker 中可能是一个想法吗?
标签: c# docker .net-core dockerfile