微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Docker映像中使用本地产生的NuGet?

如何解决如何在Docker映像中使用本地产生的NuGet?

我有一个用例,其中我的计算机上已经本地生成一个.nupkg文件。 我想在docker映像中使用此本地nuget文件。以下是现有docker文件的外观-

class CheckBoxCustom extends StatefulWidget {
  @override
  _CheckBoxCustomState createState() => _CheckBoxCustomState();
}

class _CheckBoxCustomState extends State<CheckBoxCustom> {
  bool checkedValue = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: CheckBoxListTile(
          title: Text("title text"),value: checkedValue,onChanged: (newValue) {
            setState(() {
              checkedValue = newValue;
            });
          },controlAffinity:
              ListTileControlAffinity.leading,//  <-- leading CheckBox
        ),),);
  }
}

因此,在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"] 步骤中,它从nuget.org存储库中获取特定的nuget程序包并构建映像。我想要一种机制,它可以使用本地计算机上的.nupkg文件,而不是从nuget服务器获取文件

.csproj文件或docker文件中是否可以做一些更改以确保它会发生? 在这种情况下是否需要设置本地nuget服务器?

解决方法

是的,您需要在某个地方运行nuget服务器。 Local很不错,除非您要设置CI,然后再需要托管CI。在稍后迁移到GitHub软件包之前,我在其中使用了带有nuget服务器的托管Docker容器。

运行该设置一段时间后,我发现每次更改都需要重新构建软件包,因此我重新配置了解决方案,根本不需要私有NuGet软件包。

,

以下是我为使其正常运行所做的更改-

Dockerfile更改-

RUN mkdir -p /nuget
ADD Nuget /tmp/Nuget

COPY src/*.csproj .
RUN dotnet restore

.csproj文件中的更改-

<RestoreSources>$(RestoreSources);https://api.nuget.org/v3/index.json;/tmp/Nuget</RestoreSources>

然后在Nuget文件夹中,我复制了.nupkg文件,该文件希望被docker映像引用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。