Docker构建镜像时本地NuGet不存在的解决方式

news2024/11/13 14:57:08

在打包镜像时,由于程序中使用了本地的NuGet包,发现怎么打包都是失败,错误如下
在这里插入图片描述
我的dockerfile 文件如下

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

# 此阶段用于生成服务项目
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build 
ARG BUILD_CONFIGURATION=Release
WORKDIR /src

COPY ["src/YiAim.Shop.Web/YiAim.Shop.Web.csproj", "src/YiAim.Shop.Web/"]
COPY ["src/YiAim.Shop.Application/YiAim.Shop.Application.csproj", "src/YiAim.Shop.Application/"]
xxx
COPY ["src/YiAim.Shop.HttpApi/YiAim.Shop.HttpApi.csproj", "src/YiAim.Shop.HttpApi/"]
COPY ["src/YiAim.Shop.EntityFrameworkCore/YiAim.Shop.EntityFrameworkCore.csproj", "src/YiAim.Shop.EntityFrameworkCore/"]
RUN dotnet restore "src/YiAim.Shop.Web/YiAim.Shop.Web.csproj" 
COPY . .
WORKDIR "/src/src/YiAim.Shop.Web"
RUN dotnet build "YiAim.Shop.Web.csproj" -c Release -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "YiAim.Shop.Web.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YiAim.Shop.Web.dll"]

无法找到本地引用的NuGet包
解决方案
1、将本地NuGet网络化(有点麻烦)
2、将本地NuGet包加入打包环境

本地NuGet包加入打包环境,搞了好久才弄明白~~

  • NuGet.Config 文件中,配置的NuGet 源(没有这个文件新建即可,NuGet.Config 文件与 .sln 文件同一文件夹中)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packageSources>
	<add key="local" value="./Nupkg" />
</packageSources>
</configuration>
  • 在dockerfile 文件中加入相关配置
# NuGet.Config里面要声明本地NuGet包的所在位置(使用相对路径) 
COPY ./NuGet.Config .
# 复制本地的Nupkg包,加入编译环境,不然找不到本地包会报错 ./Nupkg/==/src/Nupkg/
COPY ./Nupkg ./Nupkg/
# 添加nuget本地来源
RUN dotnet nuget add source /src/Nupkg/

ps:本地的包注意存放的位置,我就是在这里花费了好多时间

可以参考我这,完整的dockerfile 与目录,灵活配置

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build 
ARG BUILD_CONFIGURATION=Release
WORKDIR /src

# NuGet.Config里面要声明本地NuGet包的所在位置(使用相对路径) 
COPY ./NuGet.Config .
# 复制本地的Nupkg包,不然找不到本地包会报错 ./Nupkg/==/src/Nupkg/ (WORKDIR /src已经设置了基本路径)
COPY ./Nupkg ./Nupkg/
# 添加nuget本地来源
RUN dotnet nuget add source /src/Nupkg/

COPY ["src/YiAim.Shop.Web/YiAim.Shop.Web.csproj", "src/YiAim.Shop.Web/"]
COPY ["src/YiAim.Shop.Application/YiAim.Shop.Application.csproj", "src/YiAim.Shop.Application/"]
COPY ["src/YiAim.Shop.Auth/YiAim.Shop.Auth.csproj", "src/YiAim.Shop.Auth/"]
COPY ["src/YiAim.Shop.Domain.Shared/YiAim.Shop.Domain.Shared.csproj", "src/YiAim.Shop.Domain.Shared/"]
COPY ["src/YiAim.Shop.Domain/YiAim.Shop.Domain.csproj", "src/YiAim.Shop.Domain/"]
COPY ["src/YiAim.Shop.Application.Contracts/YiAim.Shop.Application.Contracts.csproj", "src/YiAim.Shop.Application.Contracts/"]
COPY ["src/YiAim.Shop.Virtually.Recharge/YiAim.Shop.Virtually.Recharge.csproj", "src/YiAim.Shop.Virtually.Recharge/"]
COPY ["src/YiAim.Shop.Wechat/YiAim.Shop.Wechat.csproj", "src/YiAim.Shop.Wechat/"]
COPY ["src/YiAim.Shop.HttpApi.Admin/YiAim.Shop.HttpApi.Admin.csproj", "src/YiAim.Shop.HttpApi.Admin/"]
COPY ["src/YiAim.Shop.HttpApi/YiAim.Shop.HttpApi.csproj", "src/YiAim.Shop.HttpApi/"]
COPY ["src/YiAim.Shop.EntityFrameworkCore/YiAim.Shop.EntityFrameworkCore.csproj", "src/YiAim.Shop.EntityFrameworkCore/"]
RUN dotnet restore "src/YiAim.Shop.Web/YiAim.Shop.Web.csproj" 
COPY . .
WORKDIR "/src/src/YiAim.Shop.Web"
RUN dotnet build "YiAim.Shop.Web.csproj" -c Release -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "YiAim.Shop.Web.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YiAim.Shop.Web.dll"]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

战略设计(Strategic Design)

战略设计(strategic design)——一种针对系统整体的建模和设计决策。这样的决策影响整个项目&#xff0c;而且必须由团队来制定。 随着系统的增长&#xff0c;它会变得越来越复杂&#xff0c;当我们无法通过分析对象来理解系统的时候&#xff0c;就需要掌握一些操纵和理解大的模…

Docker简介及部署方法

什么是 docker &#xff1f; Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中&#xff0c;并几乎可以在任何支持的平台上运行。Docker利用Linux内核的功能&#xff08;如Cgroups和namespaces&#xff09;来实现对进程的…

《JavaEE进阶》----7.<SpringMVC实践项目:【登录页面的验证】>

这篇文章详细的讲解了一个 简单的登录网页的前端代码和后端代码的构造 使用了JavaScript中的ajax来进行前后端的交互 一、前端代码 登录页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录…

从0开始深度学习(2)——自动微分

1 微积分 1.1 导数和微分 略 1.2 偏导数 略 1.3 梯度&#xff08;gradient&#xff09; 1.3.1 定义 对于一个多变量函数 f ( x 1 , x 2 , … , x n ) f\left(x_{1}, x_{2}, \ldots, x_{n}\right) f(x1​,x2​,…,xn​)其中点 a ( a 1 , a 2 , … , a n ) \mathbf{a}(a_…

【栈经典问题剖析】上

1.1进制转换 1.1.2思路图解&#xff1a; 每次将得到的余数存入栈中&#xff0c;直到商为0时&#xff0c;停止入栈。依次将栈中元素出栈并进行打印操作&#xff08;注意负数的符号情况&#xff09; //进制转换&#xff1a;10进制整数转换成8进制整数 #include <stdio.h>…

Google的MapReduce和Hadoop的MapReduce基本原理

Google的MapReduce和Hadoop的MapReduce基本原理 MapReduce框架的执行过程可以概述为以下几个关键步骤&#xff1a; 输入分割&#xff1a;用户程序中的MapReduce库首先将输入文件分割成M个片段&#xff0c;每个片段通常大小在16MB到64MB之间&#xff0c;用户可以通过可选参数控制…

【leetcode413周赛】——前两题python

3274. 检查棋盘方格颜色是否相同 给你两个字符串 coordinate1 和 coordinate2&#xff0c;代表 8 x 8 国际象棋棋盘上的两个方格的坐标。 以下是棋盘的参考图。 如果这两个方格颜色相同&#xff0c;返回 true&#xff0c;否则返回 false。 坐标总是表示有效的棋盘方格。坐标…

【indirect 函数 ★二级下拉菜单】

Indirect 函数 &#x1f33c;indirect函数参数&#x1f33c;应用&#xff1a;&#x1f33c;跨表引用同一单元格&#x1f33c;二级下拉列表 &#x1f33c;indirect函数参数 返回⬅️【文本字符串所指定的引用】 INDIRECT(ref_text,[a1]) 其中【ref_text】是引用的文本 [a1] 是…

大数据之数据湖Apache Hudi

一、Hudi框架概述 Apahe Hudi (Hadoop Upserts delete and Incrementals) 是Uber主导开发的开源数据湖框架&#xff0c;为了解决大数据生态系统中需要插入更新及增量消费原语的摄取管道和ETL管道的低效问题&#xff0c;该项目在2016年开始开发&#xff0c;并于2017年开源&#…

Mysql基础练习题 1084.销售分析3 (力扣)

编写解决方案&#xff0c;报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 &#xff08;含&#xff09;至 2019-03-31 &#xff08;含&#xff09;之间出售的商品 题目链接&#xff1a; https://leetcode.cn/problems/sales-analysis-iii/description/ 建表插入数据&…

学习指纹浏览器 处理美团mtgsig1.2 环境检测

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我…

恭喜各位天命人!2024年国自然基金放榜了!优青654项、杰青433项,附个人查询攻略

公众号&#xff1a;生信漫谈&#xff0c;获取最新科研信息&#xff01; 恭喜各位天命人&#xff01;2024年国自然基金放榜了&#xff01;优青654项、杰青433项&#xff0c;附个人查询攻略https://mp.weixin.qq.com/s?__bizMzkwNjQyNTUwMw&mid2247487048&idx1&sn1…

Webfunny前端监控如何搭建高并发使用场景

Webfunny可以支持千万级别PV的日活量了。但是&#xff0c;我们默认的部署配置&#xff0c;是无法支持这么高的日活量的&#xff0c;需要我们做一些支持高并发的配置和操作&#xff0c;下面让我们一起看下如何让webfunny支持更高的并发量吧&#xff0c;下图为webfunny高并发架构…

数据集格式转化

数据集格式转换的要点是从对应的格式中解析出对应的class和bbox 整体说明&#xff1a; lables_voc_dir&#xff1a; 为存放所有xml的标注文件夹&#xff0c;labels_yolo_dir: 为转换后存放所有xml的标注文件夹images_dir : 为所有图像文件的文件夹。、 注意&#xff1a;代码…

C++手撕简易list

目录 节点的准备 list类 push_back stl容器的遍历和修改 begin end ! 重载* 效果展示&#xff1a; const迭代器 方法一&#xff1a; 方法二&#xff1a; ->的重载 insert push_front erase 展示效果 pop_back && pop_front 效果展示 clear&am…

【 html+css 绚丽Loading 】000030 灵文闪烁符

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

【C++】继承相关知识详细梳理

1.继承简介 什么是继承&#xff1a; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象程序设计的层…

python破解[5分钟解决拼多多商家后台字体加密]

可【QQ群】拿源码 进入经营总览想把数据存下来发现返回的json数据部分空白如下 这可怎么办 稳住应该是字体的问题&#xff0c;可能是多多自己实现了某种字体&#xff0c;我们去找他的js 发现如我们所想&#xff0c;进行跟踪&#xff0c;发现的确是在css端进行了字体替换&am…

报警规范管理

报警规则管理 想要获取报警数据&#xff0c;我们首先必须先制定报警规则&#xff0c;会根据不同的设备&#xff0c;不同的物模型来定义报警规则 需求分析 我们先来分析需求&#xff0c;打开原型图 数据来源&#xff1a; 逻辑规则&#xff1a; 1&#xff09;若多条报警规则是…

CSS-层叠上下文【看这一篇就够了!!!】

目录 前序 z-index设置定位元素层叠顺序 z-index值相同时&#xff0c;写在后面的覆盖写在前面的 z-index值越大&#xff0c;越在上面显示 z-index值为负数 CSS中的层叠上下文 什么是“层叠上下文” 层叠上下文的创建 根层叠上下文 定位元素的传统层叠上下文 层叠顺序…