当前位置: 首页 > 知识库问答 >
问题:

Dockerfile dotnet在本地恢复,而不是到达nuget服务器

李星波
2023-03-14

我正在为一家公司开发一个 .net core 3.1 项目。我配置了一个非常简单的 docker文件,它利用 RUN dontnet 还原来检索我的项目所需的所有 nuget 包。这对我来说很好用。它将构建和运行容器没有问题。

当公司将我的解决方案拉到他们的网络上,他们试图运行相同的dockerfile时,问题就出现了。他们的防火墙规则阻止到外部站点的SSL连接(nuget不属于的明确例外)。因此,当他们尝试构建容器时,当还原尝试访问时,他们会失败“https://api.nuget.org/v3/index.json”“出于以上原因,这对我来说是有道理的。

如果我更新我的dotnet构建以包括nuget包作为发布输出的一部分,我能让dockerfile更新引用nuget包的发布输出,而不是从nuget本身进行dotnet恢复吗?本质上,有没有一种好的方法来处理docker构建过程,使它可以离线完成(即不依赖于外部资源)?

共有2个答案

司寇善
2023-03-14

正如@Lex Li上面提到的,更好的方法是使用dotnet进行自我发布,然后将这些文件复制到容器中,这样就不需要进行dotnet恢复。

我通常喜欢做点网络恢复,以保持较小的大小,但在这种情况下,这是正确的做法。

唐珂
2023-03-14

您可以使用NuSave创建一个本地缓存,然后将其添加到Docker容器中;可用于离线还原解决方案。

 类似资料:
  • 我从吉图卜克隆了项目。我的解决方案有 6 个项目,每个项目都有 packages.config 文件(其中包含包及其版本的列表),但这些包不会还原。 我已经尝试恢复nuget包的方法: 在 Visual Studio 中:

  • 问题内容: 我正在尝试启动有关容器技术的.net核心Web api。使用泊坞窗。 环境= Windows 10,Visual Studio Docker版本: 客户: 版本:17.12.0-ce API版本:1.35 Go版本:go1.9.2 Git提交:c97c6d6 建成:2017年12月27日星期三20:05:22 操作系统/ Arch:Windows / amd64 服务器: 发动机: 版

  • 以下是我的现状: 我收到了一长串数据,其中包含名称和值,以及相应的值ID。ID的数量对于呈现的数据可能会有所不同,但对于整个集合来说是恒定的。(这个集合每个名称正好有2个值)。问题是,名称重复,但ID不重复。然后我的问题变成了, 如何转换如下所示的表: 更像这样: 注意:我很难想出这个问题的标题。

  • 问题内容: 我正在通过使用RemoteWebDriver从笔记本电脑(java客户端)在远程PC上运行Selenium WebDriver测试。但是RemoteWebDriver尚未提供截图API来直接获取远程PC的截图。Googled很多,但发现似乎需要使用Json API才能直接从remoteWebDriver服务器获取它。任何人都可以给我一些有关如何做的指示?谢谢。 问题答案: 在必须增强之

  • 我正在重构一个JavaEE应用程序,它使用apache Commons net FTP库来促进两个服务器之间的FTP传输。代码与网页上作为示例发布的代码几乎相同,http://commons.apache.org/proper/commons-net/examples/ftp/ServerToServerFTP.java.正在传输的文件有时超过60 gb,即使超时设置得相当高,并且最大的传输是通过

  • 问题内容: 我如何获得客户的时间?当我使用它返回服务器的时间。 问题答案: 每个人都提到,PHP仅显示服务器端时间。 对于客户端,您将需要Javascript,以下方法可以解决问题。 而且,如果您想要AM / PM后缀,则应执行以下操作:

  • 我有一个问题,连接两个不同的进程,我正在工作。我的任务是从数据库中提取数据,从数据中创建一个文件,然后将其上传到FTP服务器。 到目前为止,我已经使用以下代码创建并下载了文件,是包含完整文本文件的字符串: 当我只想在浏览器中运行脚本并下载文件,但我希望将其发送到FTP服务器时,这会起作用。 我知道我与FTP服务器的连接正常工作,并且我正确地导航到正确的目录,并且我已经从磁盘中提取了文件并使用将它们