c# - 如何在 docker 镜像中使用本地生成的 NuGet?
问题描述
我有一个用例,我的机器上已经本地生成了一个 .nupkg 文件。我想在 docker 镜像中使用这个本地 nuget 文件。下面是现有 docker 文件的样子 -
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app
RUN mkdir -p /nuget
ADD nuget /nuget/
COPY src/*.csproj .
RUN dotnet restore
COPY src/ .
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
WORKDIR /app
COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "EdgeService.dll"]
因此,在该RUN dotnet restore
步骤中,它会从 nuget.org 存储库中获取特定的 nuget 包并构建映像。我想要一种机制,它可以使用我在本地机器上拥有的 .nupkg 文件,而不是从 nuget 服务器获取。
我可以在 .csproj 文件或 docker 文件中进行一些更改以确保它发生吗?在这种情况下是否需要设置本地 nuget 服务器?
解决方案
是的,您需要在某处运行的 nuget 服务器。本地很棒,直到您想要设置 CI,然后您需要一个托管的。在后来迁移到 GitHub 包之前,我使用了一个带有 nuget 服务器的托管 docker 容器。
在运行此设置一段时间后,我发现为每次更改重新构建包都很痛苦,因此我重新构建了我的解决方案,根本不需要私有 NuGet 包。
推荐阅读
- python - 如何使用 python 脚本设置 Windows 10 壁纸?
- linux - perf 事件组中只有 2 个 PERF_TYPE_HW_CACHE 事件
- 3d - 确定 3D 坐标是否在点云内
- python - python中是否有R的eacf等效功能?
- magento - 使用作曲家更新的企业磁极 2 设置
- git - git 上的文件夹名称与本地不同 // 在拉取之前执行 github 操作
- python - 在模块中定义预初始化对象列表的最佳方法是什么?
- javascript - Vue.js 中的 querySelector 问题
- reactjs - 如何按 id 打开页面?
- android - Android Kotlin:Uri 到文件(图像和视频)上传到服务器